我有一个非常严重的多线程调试问题。与串行设备进行交互时,我遇到了某种定时问题,因此需要对其进行跟踪。我有三个线程:
我的问题实际上与调试这种情况有关。看来我在每个线程中的每一行都必须有一个断点才能进行调试。如果我闯入一个线程,调试器将不会单步执行该线程。我知道其他线程将继续更新,但是我正在执行的线程是否不应该像调试器中的正常一样执行,即从一行移到另一行?然后,我可以使用“线程”选项卡在线程之间进行切换。
我提到我加入WPF是因为我完全不知道这是否会改变情况。也许会,也许不会。状态检查线程是UI控件的一部分,因为仅在UI处于启动状态时才需要检查状态。该控件位于与主应用程序不同的库中。
最佳答案
如果您的代码以一种奇怪的方式单步执行,则有时可能是由一个简单的损坏的pdb文件引起的。代码上的“全部重建”将从头开始重新生成它,并解决所有此类故障。
要记住的另一件事是,在调试器中停止一个线程可能会导致各种异常的时序,而您在发行版本中不会看到这种时序。例如:
关于c# - C#和vs2008中的线程调试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1014324/