考慮下面的例子:取消異步並行代碼
private async Task<List<string>> SearchStrings(string text, ImmutableList<string> words, CancellationToken token) {
var foundWords = new List<string>(words.Count);
var result = await Task.Run(() =>
Parallel.ForEach(words, (s) => {
if (s.ToLower().Contains(text)) {
foundWords.Add(s);
}
}));
return foundWords;
}
我有什麼與我的令牌取消?這是任務,並行執行還是兩者兼而有之?我在哪裏必須捕捉哪個異常?
你真的要支持此方法的取消嗎?如果是的話,那麼這個任務應該以該取消標記開始 – Rahul
這只是一個例子。問題總的來說我必須取消。 – VSDekar
編輯我的評論...再次檢查 – Rahul