.net - 空工作线程,它们是什么?

标签 .net winforms multithreading user-interface worker-thread

在调试 .NET Framework 3.5、WinForms 应用程序时,我发现了一些没有名称的“工作线程”。

我知道当你打开一个应用程序时,默认情况下你有一个工作线程。然而,在调试过程中,当我暂停调试器并查看“线程”窗口时,我看到大约 5 个以上类似的线程(优先级=正常)。

应用程序打开的所有线程都有一个名称,因此这些线程不是从代码中打开的,至少不是通过 Thread.Start() 打开的

当我尝试双击时,VS.NET 也找不到代码。

这些线程是什么?它们是否正常,或者某些操作是否以某种方式留下了空线程?

它们可以是计时器或类似的非明显控件,函数在后台与临时线程一起工作吗?

最佳答案

我刚刚将 VS 中的线程与 WinDbg 中的线程进行了比较,看起来 VS 在线程窗口中将线程池线程标记为“工作线程”。因此,我假设您所看到的线程是由于使用BackgroundWorker、Timer、BeginInvoke 或类似的线程池功能而启动的。

关于.net - 空工作线程,它们是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1354253/

相关文章:

c# - 如何从Azure AD获取asp net core 2.0 JwtBearer token 中的 key 名称

c# - OpenFileDialog C# 自定义筛选器,如 'ABC*.pdf'

c# - xml :space in resource file of c# winform

c# - 我可以在 Form.Close() 之后放置命令吗?

multithreading - 为什么 redis+socket.io 的性能比 socket.io 更好?

.net - 查询 iis 7.0 进行分析时出现内部错误

c# - 将大量物理文件名写入文本文件 c#

c# - 如何禁用 ToolStripButton?

ios - UIView animateWithDuration 使应用程序在从 dispatch_async block 调用时挂起

c++ - 在写入该变量的唯一线程中使用 memory_order_relaxed 加载原子变量是否安全?