【问题标题】:VS 2012 breaks on wrong threadVS 2012 在错误的线程上中断
【发布时间】:2012-12-03 20:50:46
【问题描述】:

我有一个多线程程序,我在其中设置了许多断点。经常,当程序遇到断点时,我会看到一行代码以绿色突出显示,表示这是程序从当前函数返回时要执行的下一行代码。但是,被命中的断点实际上是在另一个线程上,在另一个源文件中。尽管实际上是导致中断的线程,但该行并未以黄色(或其他任何内容)突出显示。

到目前为止,我发现解决此问题的唯一方法是停止程序执行,清理解决方案并重建整个解决方案。这大约有 70% 的效率,但我经常需要多次这样做。

可能相关的其他信息:程序是用 C# 编写的,有问题的代码是 MVC 网站调用的 WCF 服务。所有这些都在我的本地机器上的 IIS7 下运行。

【问题讨论】:

  • 您知道,当执行暂停时,您可以选择查看堆栈跟踪/源代码突出显示/所有其余信息的线程。如果它不交换到命中断点的线程会很烦人,但是您不需要重新构建/重新部署才能看到它,只需打开“线程”选项卡并选择它即可。
  • 实际上,中断的线程并没有显示在线程窗口中。

标签: c# multithreading wcf model-view-controller


【解决方案1】:

您可以在调试中从一个线程转到另一个线程。

调试\Windows\线程[ctrl-alt-h]

您将获得线程列表。

请注意,在单步执行代码时,您可能会在线程之间切换。最好的选择是冻结其他线程。

【讨论】:

    猜你喜欢
    • 2012-12-05
    • 2012-07-04
    • 2014-10-21
    • 1970-01-01
    • 2013-07-25
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多