C# 在控制台应用程序的后台监听按键
大家好
我正在控制台应用程序中使用 .Net 2。
我有一个可以长期工作的方法。它的名字是:public void DO(){....}
我想当按键时停止工作。
我如何做到优雅?
有活动吗?
感谢您的帮助
Hello all
I am working with .Net 2 at console application.
I have a method that do a long job. it name is:public void DO(){....}
i want when key-press to stop the job.
how i do it elegant?
with event?
thanks for your help
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
其中一种解决方案可以简单地在另一个线程中运行
DO(..)
,并监听主线程Console.ReadLine()
上的按键或任何其他重载。当您获得密钥时,向DO(...)
方法的线程发出信号以停止。编辑
使用
volatile bool
变量的简单、非常基本的示例(我看到你在谈论C# 2.0)可以在这里找到:示例
One of the solution can be simply run
DO(..)
in another thread, and listen for the key press on main threadConsole.ReadLine()
or any other overload. At the moment you get a key, signal toDO(...)
method's thread to stop.EDIT
Simple, very basic example (I see you're talking about C# 2.0) by using
volatile bool
variable can find here:Sample
就像 Tigran 所说,只需使用线程即可。
使用事件会冻结应用程序,直到侦听下一个事件。
Like Tigran said, just use a Thread.
Using events freezes the application till the next event is listened.