2013-07-11 2 views
0

У меня есть консольное приложение, которое запускает процесс (который занимает около 2 - 3 часа, чтобы закончить)Сообщения на дисплей во время ожидания процесса до конца

Есть ли способ я могу отобразить сообщение о том, «Процесс запущен ...»Через каждые несколько минут, ниже код:

  using (process) 
      { 
       var output = new StringBuilder(); 
       var error = new StringBuilder(); 

       using (var outputWaitHandle = new AutoResetEvent(false)) 
       using (var errorWaitHandle = new AutoResetEvent(false)) 
       { 
        process.OutputDataReceived += (sender, e) => 
        { 
         if (e.Data == null) 
         { 
          outputWaitHandle.Set(); 
         } 
         else 
         { 
          output.AppendLine(e.Data); 
         } 
        }; 
        process.ErrorDataReceived += (sender, e) => 
        { 
         if (e.Data == null) 
         { 
          errorWaitHandle.Set(); 
         } 
         else 
         { 
          error.AppendLine(e.Data); 
         } 
        }; 

        process.Start(); 
        Console.WriteLine("Process is running..."); // THIS ONLY DISPLAYS ONCE 

        process.BeginOutputReadLine(); 
        process.BeginErrorReadLine(); 
        process.WaitForExit(); 
        Console.WriteLine("Process has shutdown...")  

       } 

ответ

1

вашего процесс завязывание вашего основного потока, так что вы не будете в состоянии сделать что-либо на эту тему в то время как процесс запущен. Создайте Background Worker, который использует таймер для случайного вывода на консоль.