【发布时间】:2011-10-04 15:40:12
【问题描述】:
使用取消令牌取消具有超时(在超时结束之前)的任务时,会引发异常。示例:
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 块中执行所有这些操作,我的代码看起来很乱。这样做的正确方法是什么?
【问题讨论】:
标签: c# multithreading c#-4.0 task-parallel-library pfx