c# - 如何判断子线程是否完成

标签 c# .net multithreading

我在使用 while(true) 循环的应用程序中使用多个线程,现在我想在所有事件线程完成其工作时退出循环。

最佳答案

假设您有线程本身的列表,这里有两种方法。

解决方案一:

使用Thread.Join()使用时间跨度参数依次与每个线程同步。返回值告诉您线程是否已完成。

方案二:

检查 Thread.IsAlive()查看线程是否仍在运行。

在任何一种情况下,请确保您的主线程将处理器时间让给正在运行的线程,否则您的等待循环将消耗大部分/所有 CPU 并使您的工作线程挨饿。

关于c# - 如何判断子线程是否完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2399536/

相关文章:

c# - 非 Windows 操作系统上的 .NET 框架 System.Windows.Form

c# - 如何在多线程中从TargetInitationException中优雅地恢复?

java - 暂停从 Java Web 应用程序发送和接收消息

c# - 如何让触摸屏在 C# 应用程序中使用鼠标事件而不是触摸事件

c# - 操作 .NET System.Console 窗口大小会导致 ArgumentOutOfBoundsException

c# - Application.EnableVisualStyles() 有什么作用吗?

ios - syscall_thread_switch iOS 8.3 竞赛 - CocoaLumberjack 错误?如何调试这个?

c# - 如何通过 TFS API 检索测试计划中的所有测试用例?

.net - 如何更改表达式中参数的类型?

.net - 如何在运行时将命令行参数传递给 Docker 镜像中的 dotnet dll?