获取在C ++ Builder中执行Process / Thread的ID

时间:2011-10-24 11:41:45

标签: c++ multithreading winapi c++builder-2010

假设我有一个具有函数

的类
class foo 
{
  ...

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

是否可以使用 OutputDebugString 打印正在执行该功能的当前线程的ID(或者如果它是主应用程序?)

我有一个大型应用程序我正在调试并发现死锁情况,并希望检查死锁中包含哪些线程。因为它可能是锁定它自己的关键部分的同一个线程。

2 个答案:

答案 0 :(得分:0)

查看GetCurrentThread功能。

答案 1 :(得分:0)

使用GetCurrentThreadId()

请注意,线程无法在关键部分死锁。一旦一个线程获得了对关键部分的锁定,它就可以释放重新输入同样的锁定(与互斥锁相同)。只需确保为每个成功的锁(重新)条目解锁关键部分,以便其他线程不会死锁。