0

我想跟踪异步函数何时完成,所以我尝试了代码中给出的它不能正常工作,有没有人使用过异步函数的 IsCompleted 属性。

我的代码:

public async Task SetAsyncTask() 
{ 
//do a long process 
} 

//Calling method 
if (SetAsyncTask().IsCompleted) 
{ 
//display a finish message 
} 

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

4

2 回答 2

6

IsCompleted 没有阻塞,你想要await SetAsyncTask();.

于 2013-10-30T12:36:15.733 回答
2

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

await SetAsyncTask();
DisplayFinishMessage();

或者

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

第一个选项可能更好。

于 2013-10-30T12:38:34.557 回答