Можно ли назвать поток в отладчике Visual Studio ?

Я работаю в C # 4.0 (winforms), отлаживая приложение с 10+ потоками. Во время отладки есть раскрывающийся список, чтобы выбрать, какой поток я должен отлаживать (доступно только во время точки останова).

Они отображаются как «поток Win32», «рабочий поток», «поток обратного вызова RPC» и т. Д.

Я бы хотел назвать их в моем коде. Я запускаю все свои потоки через фоновых рабочих.

Edit: мое решение. Это может не работать в 100% случаев, но делает именно то, что нужно. Если в некоторых случаях метки неправильные, это нормально в контексте, с которым я работаю.

В каждом событии * _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;
     }
  }
7
задан greggorob64 20 September 2011 в 21:17
поделиться