gpt4 book ai didi

c# - 在Visual Studio 2008中调试多线程C#-C++/CLI-C++解决方案: What are these threads?

转载 作者:行者123 更新时间:2023-12-03 13:22:22 25 4
gpt4 key购买 nike

我继承了一个包含三个级别的代码的项目。最低层是与硬件交互的 native C++。这是成熟,稳定和经过测试的。中间代码是C++/CLI,它与包含UI元素和一些其他功能的顶级C#代码进行交互。该C#代码不完整,已被迫着急进行开发:它经常崩溃,不符合特定目的。我的任务是调试并完成它。

我正在使用VS 2008逐步浏览多线程代码,以了解从何处开始该项目。一个简单的问题:在``线程''窗口中,我有两个命名线程:一个与某些基础硬件(即C++代码)通信的Worker线程和一个User Interface线程。

但是,单步执行代码,有许多工作线程没有名称,也没有与之相关的调用堆栈,这些线程看起来似乎是随机的。它们在“调试位置”工具栏中没有条目,并且在选择“在源中显示线程”时,它们在代码中似乎不可见。

它们是什么,我应该关注它们吗?它们似乎不是来自 native 代码(因为它使用Boost进行线程化,这在调用堆栈中很明显)。冻结它们或更改其优先级似乎没有任何效果。

在此之前,我还没有调试过这种复杂的多线程代码,因此请多多指教!

最佳答案

除了应用程序的线程外,.NET应用程序中还有一些其他线程。运行时使用专用线程来运行终结器。正如driis指出的那样,您可能还会看到线程池线程。调试器也将启动一个线程。如果您使用的是vshost,则会得到a bit of overhead an additional threads

关于c# - 在Visual Studio 2008中调试多线程C#-C++/CLI-C++解决方案: What are these threads?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3264245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com