【发布时间】:2018-06-30 18:46:50
【问题描述】:
我希望了解各种应用程序中的线程使用情况,我有点惊讶WPF 应用程序还有 2 个线程(除了 UI 线程) 我没想到。
我按照以下步骤操作:
- 创建新的 WPF 应用
- 按
F5以调试模式启动它 - 转到
Debug -> Windows -> Parallel Stacks - 按
Break All按钮 - 调查
Parallel Stacks窗口
我希望得到一个线程 - UI 线程,但得到了 3 个线程:
最左边的线程是 UI 线程 - 这是我一直期望的,但是 另外 2 个线程是做什么用的?我没有创建它们 - 我只是制作了一个准系统 WPF 应用程序 - 没有修改新项目向导生成的初始代码。
还有如何使用上面截图中红色箭头指示的功能:
ProtocolHandler.SendThreadProtocolHandler.ReadThread
我查找了文档,但没有找到太多关于这些的信息。我也尝试在后面的代码中使用它们,但没有要添加的 using 语句 - 它们只是无法识别。
【问题讨论】:
-
我得到了不同的线程(可能取决于 .NET 版本)。如果你从 VS 外部启动程序,然后附加,你还能看到线程吗?
-
我刚试过:是的,我得到的线程与以前完全相同。我从 VS 外部启动了该应用程序的发布版本,附加到进程并使用了全部中断。并行堆栈中的相同线程。
-
你的 WPF 版本是多少?
标签: c# wpf multithreading threadpool