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