【发布时间】:2012-06-22 22:53:10
【问题描述】:
我有一个应用程序设置了一些事件,需要等待这些事件发生后再退出。最好的方法是什么?我知道 Thread.Sleep 是一个糟糕的选择,原因有很多,包括它甚至无法在睡眠时处理事件。我显然不会用一个什么都不做的while循环来浪费cpu周期。那么,防止控制台应用程序在不确定的时间内退出以便它可以在引发事件时对其进行处理的最简单方法是什么?
最终这将成为一项服务,这将使它成为一个非问题,但现在在我的第一次迭代中,我只是在控制台应用程序中测试我的一些代码,然后我才遇到麻烦一个真正的服务(之前没有做过服务,所以我想确保我的代码是可靠的,以免使下一步复杂化)。在我写这篇文章时,我刚刚意识到我可以在 WinForms 应用程序中对其进行测试,这样就可以解决我的问题,呵呵。
【问题讨论】:
-
您在谈论什么样的事件,什么样的应用程序?如果你能给我们更多的背景信息,那真的很有帮助。
-
您是否在寻找类似于 MSDN 示例的 WaitHandle.WaitAll 的内容? msdn.microsoft.com/en-us/library/z6w25xa6.aspx
-
@JonSkeet 在上面放更多信息。我开始更全面地回答你的问题几次,但在不写一本书时遇到了麻烦。不过,我可能会在我吃完之后再试一次:)
-
我在 this 的基础上编写了可以作为控制台应用程序运行和调试的服务。
标签: c# multithreading events