0
我在取消c#任务时出现问题,任务[0]不停止执行。 这是代码。在c中取消任务#
var tokenSource = new CancellationTokenSource();
var token = tokenSource.Token;
Task[] tasks = new Task[2];
tasks[0] = Task.Run(() => {
SomeClass Object1 = new SomeClass();
if (tasks[1].IsCompleted)
{
tokenSource.Cancel();
}
},token);
tasks[1] = Task.Run(() =>
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
});
可能重复[如何取消任务在等待?](http://stackoverflow.com/questions/10134310/how-to-cancel-a-task-in-await) – Claudius
值得指出的是,我们无法看到其他任务正在运行的代码,只是简单地调用CancellationTokenSource.Cancel()并不会真正取消任何事情,执行任务中必须检查令牌并根据取消请求采取行动。 – CodingGorilla
你永远不会开始任务[1]'因此当然不会完成任务。其次,即使你开始执行任务[1],如果它在'tasks [0]'开始的时候被标记为'IsCompleted',它几乎必须立即完成。 – Rob