gpt4 book ai didi

c# - 等待线程完成的标准方法

转载 作者:太空宇宙 更新时间:2023-11-03 22:25:50 24 4
gpt4 key购买 nike

等待另一个线程中的进程完成的标准方法是什么?

在我的例子中,我有一个多线程服务,我想确保在请求停止服务时,处理在服务退出之前完成。我应该使用 ManualResetEvent 吗? ?

最佳答案

如果您有对等待完成的线程的引用,您可以对这些引用调用 .Join() 方法。这将导致您的主线程等待,直到您调用 .Join() 的线程完成后再继续。

或者,您可以创建一个主线程和子线程都可以访问的 ManualResetEvents 数组。每个子线程都引用主线程可以访问的数组中的一个事件。在主线程结束时在事件数组上调用 WaitHandle.WaitAll(array of events),并在每个子线程结束时在事件上调用 .Set() 以通知主线程子线程已完成。

在主线程退出之前,下面将阻塞,直到所有子线程在其事件上调用 .Set() 为止:

WaitHandle.WaitAll(事件数组);

关于c# - 等待线程完成的标准方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1459915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com