以下代码永远不会进入"做一些事情A"部分。断点没有被击中。它总是进入IsCanceled状态。
Task process = new Task<byte[]>(() => {
//Do something A
return Client.ReadData(stringToSend);
}, token).ContinueWith((r) => {
if (r.IsCompleted && r.Status == TaskStatus.RanToCompletion) {
//Do something B
}
else if (r.IsFaulted) {
//Do something C
}
else if (r.IsCanceled) {
//Do something D
}
}
});