当前位置: 首页 > 编程语言 > C#

Task.RunwithCancellationSupport分享

时间:2023-04-10 18:30:44 C#

Task.RunwithCancellationSupport它展示了如何创建具有取消支持的任务。我正在做类似的事情:Task.Run(()=>{while(!token.IsCancellationRequested()){...}},token);我的问题:既然我已经有了取消令牌的引用,为什么要将它作为参数传递给Task.Run调用?我经常在示例中看到以下代码:if(token.IsCancellationRequested)token.ThrowIfCancellationRequested();这段代码的目的是什么?为什么不从方法返回?如果您将取消令牌传递给Task.Run,??如果您在启动任务之前取消令牌,它将永远不会启动以节省资源(我的意思是不创建线程等)。如果您只是从方法中返回,任务的状态将不会是Canceled,而是RanToCompletion。显然,这不是您所期望的。或者,您可以抛出一个以CancellationToken作为参数的OperationCanceledException,这将导致Task.Status被取消,但这是一种困难且冗长的方法。token.ThrowIfCancellationRequested简洁明了。您可以简单地使用token.ThrowIfCancellationRequested();,无需检查token.IsCancellationRequested。ThrowIfCancellationRequested方法已经这样做了。以上就是C#学习教程:支持取消的Task.Run分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: