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代码。 Taskasync应替换为new Task(或Task.Start)。同样,Task.Run应该替换为TaskFactory.StartNew

最后,我建议您不要使用Thread.Sleep;您的控制台应用程序应仅在使用Task.Delay的单个Task.WaitAll上的Wait。经过所有这些更改,您的代码将如下所示:

Task

以上是关于C#如何让函数等到完成某件事?的主要内容,如果未能解决你的问题,请参考以下文章

如何让函数等到动画完成?

如何让语句等到前一个函数完成?

如何让函数调用等到另一个完成

如何让一个方法等到另一个方法完成它在Objective C中工作?

java多线程之间的通信

如何让 android 应用程序等到电话完成?