异步函数的 IsDone 属性中的问题

本文关键字:问题 属性 IsDone 函数 异步 | 更新日期: 2023-09-27 18:37:24

我想跟踪异步函数何时完成,所以我尝试按照代码中给出的它无法正常工作,是否有人使用异步函数的 IsDone 属性。

我的代码:

public async Task SetAsyncTask() 
{ 
//do a long process 
} 
//Calling method 
if (SetAsyncTask().IsCompleted) 
{ 
//display a finish message 
} 

请帮助使用它的最佳方式是什么。

异步函数的 IsDone 属性中的问题

IsDone没有阻塞,你想await SetAsyncTask();

使用 await 关键字或使用 while 代替 if

await SetAsyncTask();
DisplayFinishMessage();

var x = SetAsyncTask();
while (!x.IsCompleted) {}
DisplayFinishMessage();

第一种选择可能更好。