你好
我在控制台应用程序中使用.Net 2。
我有一个做长期工作的方法。它的名字是:
public void DO(){....}
我希望按键停止工作。
我怎么做优雅的?
与事件?
感谢您的帮助
答案 0 :(得分:2)
其中一个解决方案可以简单地在另一个线程中运行DO(..)
,并监听主线程Console.ReadLine()
上的按键或任何其他重载。在您获得密钥的那一刻,发信号通知DO(...)
方法的线程停止。
修改强>
使用volatile bool
变量的简单,非常基本的例子(我看到你在谈论C#2.0)可以在这里找到:
答案 1 :(得分:0)
像Tigran所说,只需使用一个Thread。 使用事件冻结应用程序,直到听取下一个事件。
private static bool abortthread = false;
public static void main()
{
new Thread(new ThreadStart(DO)).Start();
Console.ReadLine();
abortthread = true;
}
private static DO()
{
while(true)
{
if(abortthread)
return;
}
}