Пример #1
0
 /// <summary>
 /// Handle ending of each task.
 /// </summary>
 private void TaskFinishedHandler(object sender, EventArgs e)
 {
     if (sender == _infoCollector)
     {
         _infoNotifier.SetQueueFillingFinished();
         _xmlWriter.SetQueueFillingFinished();
     }
     Interlocked.Increment(ref _tasksFinished);
     // Check if all tasks finished
     if (_tasksFinished == 3)
     {
         OnTreeBuildingFinished();
         _infoCollector = null;
         _infoNotifier  = null;
         _xmlWriter     = null;
     }
 }