是否可以在Visual Studio调试器中命名一个线程?

时间:2011-09-20 20:29:22

标签: c# winforms visual-studio debugging ide

我正在使用C#4.0(winforms),调试一个包含10个以上线程的应用程序。在调试时,有一个下拉列表来选择我应该调试哪个线程(只能在断点期间访问)。

这些显示为“Win32 Thread”,“Worker Thread”,“RPC Callback Thread”等......

我很乐意在我的代码中命名它们。我正通过后台工作人员运行我的所有线程。

编辑:我的解决方案。这可能无法在100%的时间内起作用,但它确实能够满足需要。如果标签在某些情况下是错误的,那么在我正在使用的上下文中就可以了。

在每个backgroundworker的* _dowork事件中,我将以下代码行放在:

ReportData.TrySetCurrentThreadName(String.Format("{0}.{1}", MethodBase.GetCurrentMethod().DeclaringType, MethodBase.GetCurrentMethod().Name));

哪个是......

  public static void TrySetCurrentThreadName(String threadName)
  {
     if (System.Threading.Thread.CurrentThread.Name == null)
     {
        System.Threading.Thread.CurrentThread.Name = threadName;
     }
  }

2 个答案:

答案 0 :(得分:9)

你可以使用Thread.Name属性,但是你只能写一次 - 所以当你创建线程时,给它一个合适的名字。

答案 1 :(得分:1)

Thread.CurrentThread.Name = "Give your name here";