C#   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c# – 具有取消支持的Task.Run大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
this Task.Run example.它显示如何创建具有取消支持的任务.

我正在做类似的事情:

Task.Run(()=>{while (!token.IsCancellationrequested()) {...}},token);

我的问题:

>因为我已经有了对取消令牌的引用,为什么将它作为参数传递给Task.Run调用呢?
>我经常在示例中看到以下代码

if(token.IsCancellationrequested)token.ThrowIfCancellationrequested();

这段代码的目的是什么?为什么不从方法返回?

解决方法

>如果将取消令牌传递给Task.Run,​​如果在启动任务之前取消令牌,则永远不会启动它来保存资源(我的意思是不创建线程等).
>如果你只是从方法返回,任务的状态将不会被取消,它将是RanToCompletion.显然,这不是你所期望的.

或者,您可以使用CancellationToken作为参数抛出OperationCanceledException,这将使Task.Status被取消,但这是一种艰难而冗长的方式. token.ThrowIfCancellationrequested简洁明了.

您可以简单地使用token.ThrowIfCancellationrequested();,无需检查token.IsCancellationrequested. ThrowIfCancellationrequested方法已经这样做了.

大佬总结

以上是大佬教程为你收集整理的c# – 具有取消支持的Task.Run全部内容,希望文章能够帮你解决c# – 具有取消支持的Task.Run所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。