using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace CancellationTokenExperiments
{
class CancellationTokenTest
{
static void Main(string[] args)
{
CancellationTokenSource tokenSource = new CancellationTokenSource();
CancellationToken token = tokenSource.Token;
tokenSource.Cancel();
Task.Run(() => Console.WriteLine("Hello from Task"), token);
}
}
}
我想了解C#中的cancellationTokens的概念。我知道上面的代码不会打印“来自任务的Hello”,因为在任务运行之前检查了令牌。了解C中的取消标记#
但是我有几个问题。
Task.Run(() => Console.WriteLine("Hello from Task"), token);
是什么上面的语句是什么意思?在某种意义上,它与简单地叫Console.WriteLine("Hello from Task")
有什么不同?只是通过传递令牌我们能够取消Task
? Task.Run
开头的空括号()
是什么意思?
- 如何更改上述代码以便我可以及时停止特定实例的执行。
“是否只是我们可以通过传递令牌来取消任务” - 否,任务中的代码必须在运行时检查取消令牌并在请求取消时退出。任务不会因为有取消请求而被神奇地停止。 – Enigmativity
尽管它们具有相同的标题,但它与标记为重复的问题并不完全相同。被问及的问题和具体问题的内容是不同的。 –