void TaskLoop() {
KeyValuePair<Task, object> task;
while( keepGoing ) {
while( priorityTasks.Count > 0 ) {
lock( priorityQueueLock ) {
task = priorityTasks.Dequeue();
}
task.Key( task.Value );
}
if( tasks.Count > 0 ) {
lock( queueLock ) {
task = tasks.Dequeue();
}
task.Key( task.Value );
}
Thread.Sleep( 1 );
}
}
}