使用取消令牌取消具有超时(在超时结束之前)的任务时,将引发异常。例子:
mytask.start();
bool didTaskRunInTime = mytask.wait(5 mins, _cancelToken);
这意味着我不能像下面这样继续下去。
//was the task cancelled
if (_cancelToken.IsCancelRequested)
{
// log cancel from user to file etc
}
if (didTaskRunInTime )
{
int taskResult = myTask.Result;
// log result to file
}
else if (!_cancelToken.IsCancelRequested)
{
// Tell user task timed out , log a message etc
}
我将不得不在我的 catch 块中完成所有这些,我的代码看起来很乱。这样做的正确方法是什么?