我希望任務在50毫秒結束時完成。然後任務的狀態應設置爲「取消」,否則設置爲「RunToCompletion」。取消任務並將狀態設置爲「已取消」
任務生成是在這裏:
CancellationTokenSource cts = new CancellationTokenSource(50);
CancellationToken ct = cts.Token;
Task test_task = Task.Run(async() =>
{
try
{
tokenS.Token.Register(() =>
{
cts.Cancel();
ct.ThrowIfCancellationRequested();
});
await NotifyDevice(BLEDevice);
}
catch (Exception e)
{
}
},ct);
我得到的到現在是一個AggregateException
,不得到由try/catch
- 阻塞莫名其妙逮住。
你想要一個50ms後取消任務還是希望在50ms後取消操作? –
任務「test_task」。操作是什麼意思? '等待NotifyDevice(BLEDevice)'? – Laurence
據我瞭解'NotifyDevice'可以持續時間超過50ms。你希望當'test_task'在50ms後被取消(簡單解決方案)時它會繼續運行嗎? –