C# 调试C中的线程池#
我想在调试Visual C时观察线程池#在不更改代码的情况下(程序已在运行)我可以向监视中添加代码吗?也许我在调试时要求使用Threadpool.AvailableThreads方法。我在VisualStudio2008中开发C# 调试C中的线程池#,c#,visual-studio,debugging,C#,Visual Studio,Debugging,我想在调试Visual C时观察线程池#在不更改代码的情况下(程序已在运行)我可以向监视中添加代码吗?也许我在调试时要求使用Threadpool.AvailableThreads方法。我在VisualStudio2008中开发 编辑:我刚刚发现,在我的线程中(即,在我放入线程池的方法中),执行了mysql查询,它们占据了线程池。我不清楚您到底想要监视什么。在VS中,“线程”窗口将显示所有线程,通过在线程之间切换,您可以监视它们各自的调用堆栈。如果您想要更多的细节,您可能需要查看WinDbg,它可
编辑:我刚刚发现,在我的线程中(即,在我放入线程池的方法中),执行了mysql查询,它们占据了线程池。我不清楚您到底想要监视什么。在VS中,“线程”窗口将显示所有线程,通过在线程之间切换,您可以监视它们各自的调用堆栈。如果您想要更多的细节,您可能需要查看WinDbg,它可以让您检查更多的细节(尽管不像VS那么容易) 编辑:回答评论中的问题。这是一种简化,但通常线程池管理许多用于运行不同任务(如QueueUserWorkItem)的线程。线程池中的线程没有什么特别之处,只是它们由线程池管理。这样做的好处是线程可以重用。创建新线程是一项昂贵的操作,因此通过重用线程,成本可以分摊
线程池不处理主线程,也不处理使用thread类创建的任何其他线程。如果无法中断执行流,则可以添加条件和消息,以便在输出窗口中看到它的运行情况。类似地,您可以添加/logs以查看结果。单击链接以查看更多详细信息。是否可以使用该窗口进行直接调试?我想知道的是,threadpool到底管理哪些线程?程序的所有线程还是仅由QueueUserWorkItem启动的线程?