2010-05-19 35 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