C#如何在方法中设置定时器?

时间:2014-11-19 03:05:18

标签: c# timer stopwatch

我想在C#方法中添加一个计时器。当此方法执行超过500秒。该方法将抛出异常。像这样:

if(sw.ElapsedMilliseconds > timeout)
{
break;
}

你有比StopWatch更好的主意吗?除了线程。 :)

非常感谢!

1 个答案:

答案 0 :(得分:2)

您可以使用Task with CancellationTokenSource

void LongMethod(CancellationToken token)
{
    for (int i=0; i<51; ++i)
    {
        token.ThrowIfCancellationRequested();
        Thread.Sleep(1000); // some sub operation
    }
}

void Run()
{
    var source = new CancellationTokenSource(50000); // 50 sec delay
    var task = new Task(() => LongMethod(source.Token), source.Token);
    task.Wait();
}