【问题标题】:C# Looping A Process Over And Over Until A User Presses A KeyC# 反复循环一个进程,直到用户按下一个键
【发布时间】:2010-05-19 14:21:11
【问题描述】:

我有一个计划检查器,它需要一直运行,直到用户按下某个键使其停止。

我的想法如下:

  1. 用户启动进程
  2. 进程每 10 秒运行一次
  3. 进程未运行时,Console.ReadLine();让用户可以选择按“q”来停止进程

我的方法可以正常工作,只是用户必须等待该过程完成所需的时间才能停止它。有什么方法可以在接受用户输入的同时同时运行该进程?

【问题讨论】:

    标签: c# input console-application readline


    【解决方案1】:

    您可以在单独的线程上运行执行计划的进程。然后主线程可以始终响应用户输入。另一方面,如果你不能在另一个进程运行时杀死它,最终的结果不会有任何不同。在该过程完成之前,整个应用程序将无法停止。但是,如果您可以随时终止另一个进程,那么多(两个)线程可能会很好地工作。

    【讨论】:

    • 马克,这很棒。我将进一步研究多线程这个主题,并希望构建一个可用的解决方案。
    • 这里使用 Console.KeyAvailable 有一个更简单的答案:stackoverflow.com/questions/11647486/…
    【解决方案2】:

    也许BackgroundWorker 可以提供帮助。

    Here is 一个例子,它也使用取消。
    MSDN也有一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-17
      • 1970-01-01
      • 2013-03-22
      • 1970-01-01
      • 2022-10-12
      • 1970-01-01
      • 2021-05-17
      • 2022-12-31
      相关资源
      最近更新 更多