我再次面临一项非常常见的任务。我已经解决了几次,但现在我正在寻找一种更“ 优雅的 ”方式 - 你能提供一些输入吗?
情况:
我有一个我想运行“半异步”的方法。换句话说:启动它并等待给定的时间 x。如果到那时该方法还没有完成(“超时”),我想通过一些清理过程继续我的代码。
到目前为止的解决方案:
ManualResetEvent) 结合
匿名方法使用
.WaitOne(x)。
结合定时器。如果定时器
在线程停止之前命中它的处理程序,therad 超时。
两种方法都可以正常工作,但我想 4.0 有更好的方法。
建议?
最佳答案
Task.Wait(Timeout)
中的 Task Parallel Library 是否符合您的要求? (您可能希望将此与取消 token 结合使用以在超时发生后取消任务。)
关于multithreading - 异步任务超时?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4302243/