不 - 至少,不干净.(我不包括Thread.Abort"干净".)你应该做的是有一种机制告诉代表你正试图取消它.然后,您的代表需要偶尔检查取消标记并做出相应的反应.
Parallel Extensions在整个地方内置了取消(特别是取消令牌,只允许适当的代码片段取消任务).据我所知,它仍然是合作的.强制取消将永远存在腐败状态的风险.
您可以使用System.ComponentModel.BackgroundWorker.它支持取消,因此您不必编写样板代码.客户端代码可以简单地调用CancelAsyn方法,您可以在代码中检查CancellationPending属性,以确定客户端是否已取消操作并进行挽救.
| 归档时间: |
|
| 查看次数: |
2539 次 |
| 最近记录: |