7 Stimmen

Ist es möglich, einen Thread im Visual Studio-Debugger zu benennen?

Ich arbeite in C# 4.0 (Winforms) und debugge eine Anwendung mit 10+ Threads. Während des Debuggens gibt es ein Dropdown-Menü, um auszuwählen, welcher Thread ich debuggen sollte (nur während eines Haltepunkts zugänglich).

Diese werden als "Win32-Thread", "Worker-Thread", "RPC-Callback-Thread", usw. angezeigt.

Ich würde sie gerne in meinem Code benennen. Ich führe alle meine Threads über Hintergrundarbeiter aus.

Bearbeiten: meine Lösung. Sie funktioniert vielleicht nicht immer zu 100%, aber sie tut genau das, was sie soll. Wenn die Bezeichnungen in einigen Fällen falsch sind, ist das in dem Kontext, mit dem ich arbeite, in Ordnung.

Bei jedem *_dowork-Ereignis eines Hintergrundarbeiters füge ich die folgende Codezeile ein:

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

Das ist...

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

9voto

Jon Skeet Punkte 1325502

Nun, Sie können die Thema.Name Eigenschaft, aber Sie können nur einmal darauf schreiben - wenn Sie also erstellen. das Thema, geben Sie ihm einen passenden Namen.

1voto

Maxim Punkte 7078
Thread.CurrentThread.Name = "Give your name here";

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X