【发布时间】:2015-01-16 11:06:31
【问题描述】:
我想在 C# 方法中添加一个计时器。当此方法执行超过 500 秒时。该方法将抛出异常。像这样:
if(sw.ElapsedMilliseconds > timeout)
{
break;
}
你有什么比秒表更好的主意吗?除了线程。 :)
非常感谢!
【问题讨论】:
-
你用的有什么问题?
-
您显示的代码只是跳出循环,而不是如您所说的抛出异常。您希望具体在这里实现什么行为?将经过的时间与超时值进行比较是什么原因不能满足您的特定需求?
-
有 2 种方法,方法本身正在测量超时并自行终止(正如您已经使用
StopWatch所做的那样)或方法 可取消(在此在这种情况下,您可以通过使用与执行并行的计数超时来取消它 -Timer、Thread、Task等)。如果方法是black box(你不能修改它并且它不支持取消请求),那么你正在谈论terminating。终止正在运行的代码的可能性很小,但不建议这样做。您能否提供更多关于您的情况的详细信息?