【发布时间】:2010-11-29 09:11:40
【问题描述】:
我又面临一个很常见的任务。我已经解决了几次这个问题,但现在我正在寻找一种更“优雅”的方法 - 你能提供一些意见吗?
情况:
我有一个我想运行“半异步”的方法。换句话说:启动它并等待给定的时间 x。如果到那时该方法还没有完成(“超时”),我想通过一些清理过程继续我的代码。
目前的解决方案:
- 使用 AutoResetEvent(或
ManualResetEvent) 与
匿名方法使用
.WaitOne(x).
- 使用线程/BackgroundWorker 与定时器相结合。如果计时器 在线程停止它之前命中它的处理程序,therad 超时。
两种方法都可以正常工作,但我认为 4.0 有更好的方法。
建议?
【问题讨论】:
标签: multithreading c#-4.0