protected override IEnumerator Do()
{
while (!exitEvent.InterWaitOne(0))
{
if (!Dispatcher.ProcessNextTask())
{
TaskDistributor.FillTasks(Dispatcher);
if (Dispatcher.TaskCount == 0)
{
var result = WaitHandle.WaitAny(new WaitHandle[] { exitEvent, TaskDistributor.NewDataWaitHandle });
if (result == 0)
return null;
TaskDistributor.FillTasks(Dispatcher);
}
}
}
return null;
}