2009-12-15 84 views
3

我有一个像下面如何在单独的线程中运行计时器?

for(int i = 0; i < 10; i++) 
{ 
    // some long time processing 
} 

我想创建一个计时器,它会检查,如果一个处理运行超过5分钟一个循环。如果一次处理运行超过5分钟,则会停止当前处理,然后开始另一次处理。

是否有可能使另一个线程来监视主循环?

我的程序是一个控制台应用程序。

回答

1

你应该使用System.Timers.Timer

+0

其实这是'System.Timers.Timer' – 2009-12-15 13:03:13

+0

什么是System.Timers.timer和System.Threading.Timer – 2009-12-15 13:03:40

+0

@Alex,固定(15chars) – Fredou 2009-12-15 13:04:19

0

但是,您仍然无法中止正在运行的代码。 代码iteself必须提供取消自己的能力,定时器可以在特定时间后调用它。

你可以使用一个布尔值“shouldCancel”,例如你在循环的每次迭代中(或者甚至多次)检查。

“坏”的方式将使用Thread.Abort - 但是,这不是很好的风格。

相关问题