private void HandleException(Exception e)
 {
     Console.WriteLine("Exception occured: {0}", e.Message);
     lock (_exceptions)
     {
         State = EFileProcessorState.Failed;
         _exceptions.Add(e);
     }
 }
 public void Join()
 {
     if (_thread != null)
         _thread.Join();
     lock (_exceptions)
     {
         if (State != EFileProcessorState.Failed)
             State = EFileProcessorState.Stoped;
     }
 }
 public void Join()
 {
     if (_threads != null)
         if (_threads.Length != 0)
             _threads.ForAll(x => x.Join());
     lock (_exceptions)
     {
         if(State!=EFileProcessorState.Failed)
             State = EFileProcessorState.Stoped;
     }
 }
 public void Start(FileInfo inputFile, FileInfo outputFile)
 {
     Abort();
     _exceptions.Clear();
     CreateThreads(inputFile,outputFile);
     _threads.ForAll(x => x.Start());
     lock (_exceptions)
     {
         State = EFileProcessorState.Running;
     }
 }