2010-05-19 31 views
3

我有一個計劃檢查器,需要運行直到用戶按下一個鍵使其停止。是C#循環遍歷一個進程,直到用戶按下一個鍵

我就這樣做的思想如下:

  1. 用戶啓動過程
  2. 過程每10秒鐘
  3. 當處理不運行時,到Console.ReadLine()運行;讓用戶按「Q」以停止該進程

我的做法會工作得很好,除了用戶將不得不等待很長但這一過程需要能夠阻止它之前完成選項。有什麼方法可以同時運行流程,同時能夠接受用戶輸入?

回答

3

您可以運行安排在單獨線程上工作的進程。然後主線程可以始終響應用戶輸入。另一方面,如果在運行時不能殺死其他進程,最終結果將不會有任何改變。整個應用程序將無法停止,直到該過程完成。但是,如果您可以隨時殺死其他進程,那麼多個(兩個)線程可能會運行良好。

+0

馬克,這太好了。我將進一步研究這個多線程主題,並希望構建一個可用的解決方案。 – sooprise 2010-05-19 14:31:48

+0

使用Console.KeyAvailable有一個更簡單的答案:http://stackoverflow.com/questions/11647486/checking-if-any-key-pressed-in-console-application-c-sharp – RedGreenCode 2013-02-02 20:34:40