所以我有一个有定时器列表的程序.每个计时器都有一个tick事件,我只想说,例如,我有10个计时器启动(所有计时器都在列表中).
永远坐着的最佳方式是什么(或直到我告诉它停止)?我应该有一个while循环吗?
foreach(Timer t in _timers)
{
t.Start();
}
while(true)
{
Application.DoEvents();
System.Threading.Thread.Sleep(5000);
}
Run Code Online (Sandbox Code Playgroud)
我觉得这不是最好的方式......
- 更新这是我的整个计划:
public static void Main()
{
// set some properties and set up the timers
foreach(Timer t in _timers)
{
t.Start();
}
while(true)
{
Application.DoEvents();
System.Threading.Thread.Sleep(5000);
}
}
Run Code Online (Sandbox Code Playgroud)
而已.没有UI,没有别的.如果我没有while循环,那么程序就完成了.
使用EventWaitHandle或数组EventWaitHandle来阻止线程执行使用WaitOne()或WaitAll()方法.
http://msdn.microsoft.com/en-us/library/kad9xah9.aspx
所以举个例子
ManualResetEvent mre = new ManualResetEvent(false);
mre.WaitOne();
Run Code Online (Sandbox Code Playgroud)
将等待永恒.
编辑
由于您正在提供服务,因此您可能希望阅读本文.
| 归档时间: |
|
| 查看次数: |
497 次 |
| 最近记录: |