Sdílet prostřednictvím


Gewusst wie: Festlegen eines Threadnamens in systemeigenem Code

Aktualisiert: November 2007

Dieses Thema gilt für folgende Anwendungsbereiche:

Edition

Visual Basic

C#

C++

Web Developer

Express

Thema ist nicht vorhanden Thema ist nicht vorhanden

Nur "Systemeigen"

Thema ist nicht vorhanden

Standard

Thema ist nicht vorhanden

Thema ist nicht vorhanden

Nur "Systemeigen"

Thema ist nicht vorhanden

Pro und Team

Thema ist nicht vorhanden

Thema ist vorhanden

Nur "Systemeigen"

Thema ist nicht vorhanden

Tabellenlegende:

Thema ist vorhanden

Vorhanden

Thema ist nicht vorhanden

Nicht vorhanden

Thema ist vorhanden, Befehl wird jedoch standardmäßig verborgen

Befehl oder Befehle, die standardmäßig ausgeblendet sind.

Verwenden Sie zum Festlegen eines Threadnamens im Programm die SetThreadName-Funktion, wie im folgenden Codebeispiel dargestellt.

Beispiel

//
// Usage: SetThreadName (-1, "MainThread");
//
#include <windows.h>
#define MS_VC_EXCEPTION 0x406D1388

#pragma pack(push,8)
typedef struct tagTHREADNAME_INFO
{
   DWORD dwType; // Must be 0x1000.
   LPCSTR szName; // Pointer to name (in user addr space).
   DWORD dwThreadID; // Thread ID (-1=caller thread).
   DWORD dwFlags; // Reserved for future use, must be zero.
} THREADNAME_INFO;
#pragma pack(pop)

void SetThreadName( DWORD dwThreadID, char* threadName)
{
   Sleep(10);
   THREADNAME_INFO info;
   info.dwType = 0x1000;
   info.szName = threadName;
   info.dwThreadID = dwThreadID;
   info.dwFlags = 0;

   __try
   {
      RaiseException( MS_VC_EXCEPTION, 0, sizeof(info)/sizeof(ULONG_PTR), (ULONG_PTR*)&info );
   }
   __except(EXCEPTION_EXECUTE_HANDLER)
   {
   }
}

Siehe auch

Aufgaben

Gewusst wie: Festlegen eines Threadnamens in verwaltetem Code

Konzepte

Anzeigen von Daten im Debugger

Weitere Ressourcen

Debuggen von Multithreadanwendungen