При отмене задачи с таймаутом (до истечения тайм-аута) с использованием токена отмены генерируется исключение. Пример:
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, а мой код выглядит неаккуратно. Как правильно это сделать?