Имя потока в VC 2008
От: _BOBAH_ Россия  
Дата: 11.11.10 08:26
Оценка:
Есть окно Threads в студии. Для каждого потока указывается его имя(Name)
Можно ли как-то это имя поменять?

11.11.10 13:48: Перенесено модератором из 'Средства разработки' — Odi$$ey
vc threads 2008
Re: Имя потока в VC 2008
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 11.11.10 08:38
Оценка:
Здравствуйте, _BOBAH_, Вы писали:

_BO>Есть окно Threads в студии. Для каждого потока указывается его имя(Name)

_BO>Можно ли как-то это имя поменять?

System.Threading.Thread.Name ?
Re: Имя потока в VC 2008
От: LMars Россия  
Дата: 11.11.10 10:02
Оценка:
Или F2 ?
Re[2]: Имя потока в VC 2008
От: _BOBAH_ Россия  
Дата: 11.11.10 10:06
Оценка:
Здравствуйте, Odi$$ey, Вы писали:

OE>Здравствуйте, _BOBAH_, Вы писали:


_BO>>Есть окно Threads в студии. Для каждого потока указывается его имя(Name)

_BO>>Можно ли как-то это имя поменять?

OE>System.Threading.Thread.Name ?


А на C++ как это сделать?
Как поменять имя потока?
От: LMars Россия  
Дата: 11.11.10 10:11
Оценка: 7 (3) +1
#Имя: FAQ.winapi.Thread.Name
_BO>>Есть окно Threads в студии. Для каждого потока указывается его имя(Name)
_BO>>Можно ли как-то это имя поменять?

OE>System.Threading.Thread.Name ?


_BO>А на C++ как это сделать?


Во, шаманский код: Setting a Thread Name (Unmanaged):

//
// Usage: SetThreadName (-1, "MainThread");
//
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;

void SetThreadName( DWORD dwThreadID, LPCSTR szThreadName)
{
   THREADNAME_INFO info;
   info.dwType = 0x1000;
   info.szName = szThreadName;
   info.dwThreadID = dwThreadID;
   info.dwFlags = 0;

   __try
   {
      RaiseException( 0x406D1388, 0, sizeof(info)/sizeof(DWORD), (DWORD*)&info );
   }
   except(EXCEPTION_CONTINUE_EXECUTION)
   {
   }
}
Re: Имя потока в VC 2008
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 13.11.10 08:02
Оценка:
Здравствуйте, _BOBAH_, Вы писали:

_BO>Есть окно Threads в студии. Для каждого потока указывается его имя(Name)

_BO>Можно ли как-то это имя поменять?

Да. В функции потока в начале вызвать:


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)
   {
   }


Документированный способ от Microsoft и Intel
Re: Имя потока в VC 2008
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 13.11.10 08:03
Оценка:
Здравствуйте, _BOBAH_, Вы писали:

_BO>Есть окно Threads в студии. Для каждого потока указывается его имя(Name)

_BO>Можно ли как-то это имя поменять?

Да забыл MS_VC_EXCEPTION=0x406D1388. Работает во всех отладчиках Microsoft и Intel.
Re: Имя потока в VC 2008
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 13.11.10 08:05
Оценка: 4 (1)
Здравствуйте, _BOBAH_, Вы писали:

_BO>Есть окно Threads в студии. Для каждого потока указывается его имя(Name)

_BO>Можно ли как-то это имя поменять?

Блин .... опять поспешил. Ковочевот
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.