Kug*_*gel 5 c# task task-parallel-library cancellation
我一直在研究.net 4.0中的任务及其取消.我喜欢TPL尝试以合作的方式正确处理取消的事实.
但是,在任务中的调用阻塞并需要很长时间的情况下,应该怎么做?对于考试IO /网络.
显然取消写入会很危险.但这些都是例子.
示例:如何取消此操作?DownloadFile可能需要很长时间.
Task.Factory.StartNew(() =>
WebClient client = new WebClient();
client.DownloadFile(url, localPath);
);
Run Code Online (Sandbox Code Playgroud)
任务支持取消令牌。您可以创建 CancellationTokenSource 的实例并将其 Token 属性传递给 DownloadFile 方法。然后,在代码中可以停止的位置,检查令牌 IsCancellationRequested 属性以查看是否请求取消。
您还应该将令牌传递给 StartNew(在该方法之后)。
要实际取消操作,您可以调用取消标记上的 Cancel 方法。
| 归档时间: |
|
| 查看次数: |
599 次 |
| 最近记录: |