Thread.Join()上挂着多线程应用程序

时间:2014-03-04 21:00:05

标签: c# multithreading debugging

我可以重现我的多线程控制台应用程序在Thread.Join()挂起的情况。

我如何实时调试并确定哪个线程挂起?有没有我可以使用的方法?

1 个答案:

答案 0 :(得分:3)

如果你有一堆线程并且你在一个循环中调用了Join,并且不确定哪一个挂起你,你可以做几件事:

  1. 可以命名线程。在创建时命名您的线程,然后在调用Join之前写入您要加入的线程的名称(调试消息或控制台窗口)。这将告诉你哪个线程名称。
  2. 您可以尝试将调试器附加到进程,中断执行,然后查看哪些线程及其位置。
  3. 线程函数中的常规跟踪消息。