C#如何让函数等到完成某件事?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#如何让函数等到完成某件事?相关的知识,希望对你有一定的参考价值。
我希望函数等待完成某件事。完成操作后,在当前执行位置继续执行该功能。
我尝试使用thread.Join();
:
Thread thread = new Thread(heavyFunction);
thread.Start();
thread.Join();
但是thread.Join();
挂断了我的整个线程,并使GUI无法操作。
转向异步函数,我也尝试使用Task.Wait()
,但结果是相同的。
答案
我建议您以我的intro to async
/await
开始,然后以async
进行跟进。
[正如我在介绍性博客文章中提到的那样,有几个await
成员是TPL的保留对象,没有使用纯official MSDN documentation on TAP代码。 Task
和async
应替换为new Task
(或Task.Start
)。同样,Task.Run
应该替换为TaskFactory.StartNew
。
最后,我建议您不要使用Thread.Sleep
;您的控制台应用程序应仅在使用Task.Delay
的单个Task.WaitAll
上的Wait
。经过所有这些更改,您的代码将如下所示:
Task
以上是关于C#如何让函数等到完成某件事?的主要内容,如果未能解决你的问题,请参考以下文章