Получить идентификатор выполнения процесса / потока в C ++ Builder - PullRequest
2 голосов
/ 24 октября 2011

Допустим, у меня есть класс с функцией

class foo 
{
  ...

  void bar() {
    OutputDebugString(........);
     // mode code
  }
}

Можно ли распечатать идентификатор текущего потока (или если это основное приложение), выполняющего функцию, используя OutputDebugString ?

У меня большое приложение, которое я отлаживаю, обнаружил тупиковую ситуацию и хотел бы проверить, какие потоки включены в тупик. Поскольку это может быть тот же поток, который блокирует свою собственную критическую секцию.

Ответы [ 2 ]

0 голосов
/ 25 октября 2011

Использование GetCurrentThreadId().

Обратите внимание, что поток не может заблокировать себя в критической секции.Как только поток получил блокировку для критической секции, он может свободно повторно войти в ту же самую блокировку, сколько захочет (то же самое с мьютексом).Просто убедитесь, что разблокировали критическую секцию для каждой успешной записи блокировки (пере), чтобы другие потоки не зашли в тупик.

0 голосов
/ 24 октября 2011

Посмотрите на функцию GetCurrentThread.

...