TPL:在OnCompleted事件中检查任务是否失败
本文关键字:检查 任务 是否 失败 事件 OnCompleted TPL | 更新日期: 2023-09-27 18:15:12
我有一个这样的任务:
var migrateTask = Task.Run(() =>
{
//do stuff
});
migrateTask.ConfigureAwait(true).GetAwaiter().OnCompleted(this.MigrationProcessCompleted);
如何告诉方法MigrationProcessCompleted
,如果我得到一个异常或任务是错误的初始线程(在做东西代码块)?
是否有一种方法来找到这没有使任务类成员/属性?
您不应该真正调用.GetAwaiter()
,它是为编译器使用的。
如果你可以使用await
,你的代码就像
public async Task YourFunc()
{
Exception error = null
try
{
await Task.Run(() =>
{
//do stuff
});
}
catch(Exception ex)
{
error = ex;
}
MigrationProcessCompleted(error)
}
private void MigrationProcessCompleted(Exception error)
{
//Check to see if error == null. If it is no error happend, if not deal withthe error.
}