【发布时间】:2016-04-21 16:42:55
【问题描述】:
使用 Visual Studio 2015,在一个新的空 C++ 项目中,为控制台应用程序构建以下内容:
int main() {
return 0;
}
在返回时设置断点并在调试器中启动程序。在 Windows 7 上,截至断点,该程序只有一个线程。但在 Windows 10 上,它有五个(!)线程:主线程和四个等待同步对象的“工作线程”。
谁在启动线程池(或者我如何找到)?
【问题讨论】:
-
关于 Windows 和无限循环的笑话来了……
-
可能进程在 Windows 10 上默认获取线程池。
-
我首先在
CreateThread上设置一个断点。请注意,使用 windbg 按名称放置断点非常常见,而在 Visual Studio 调试器中这是可能的,但需要学习一些不寻常的菜单命令。 -
这是您在 Visual Studio 中观察到的趋势吗?还是直接从命令行运行代码时可以看到的线程(例如在ProcessExplorer 中)?
-
@Christophe:您是否建议 Visual Studio 调试器将线程池注入被测进程,但仅限于 Windows 10?
标签: c++ windows multithreading threadpool