Exemple #1
0
 protected override void Do()
 {
     while (!CheckExitEvent())
     {
         if (!Dispatcher.ProcessNextTask())
         {
             TaskDistributor.FillTasks(Dispatcher);
             if (Dispatcher.TaskCount == 0)
             {
                 var result = WaitHandle.WaitAny(new WaitHandle[] { exitEvent, TaskDistributor.NewDataWaitHandle });
                 if (result == 0)
                 {
                     return;
                 }
                 TaskDistributor.FillTasks(Dispatcher);
             }
         }
     }
 }