Multithreading windows api:如何在当前进程中查找活动线程数?

Multithreading windows api:如何在当前进程中查找活动线程数?,multithreading,winapi,Multithreading,Winapi,我已经在windows平台上编写了一个基于boost::asio的服务器。我想定期记录应用程序当前活动的线程数 我可以在windows任务管理器的“线程”列中的“进程”视图中查看应用程序的线程数。是否有一个windows api可以获得相同的结果 在徒劳地搜索了一段时间后,我认为最好向SO寻求建议 为了完整起见,他的示例代码如下: #include <stdio.h> #include <windows.h> #include <tlhelp32.h> in

我已经在windows平台上编写了一个基于boost::asio的服务器。我想定期记录应用程序当前活动的线程数

我可以在windows任务管理器的“线程”列中的“进程”视图中查看应用程序的线程数。是否有一个windows api可以获得相同的结果

在徒劳地搜索了一段时间后,我认为最好向SO寻求建议

为了完整起见,他的示例代码如下:

#include <stdio.h>
#include <windows.h>
#include <tlhelp32.h>

int __cdecl main(int argc, char **argv)
{
 HANDLE h = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
 if (h != INVALID_HANDLE_VALUE) {
  THREADENTRY32 te;
  te.dwSize = sizeof(te);
  if (Thread32First(h, &te)) {
   do {
     if (te.dwSize >= FIELD_OFFSET(THREADENTRY32, th32OwnerProcessID) +
                      sizeof(te.th32OwnerProcessID)) {
       printf("Process 0x%04x Thread 0x%04x\n",
             te.th32OwnerProcessID, te.th32ThreadID);
     }
   te.dwSize = sizeof(te);
   } while (Thread32Next(h, &te));
  }
  CloseHandle(h);
 }
 return 0;
}
#包括
#包括
#包括
内部cdecl主(内部argc,字符**argv)
{
HANDLE h=CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD,0);
if(h!=无效的\u句柄\u值){
THREADENTRY32-te;
te.dwSize=sizeof(te);
if(螺纹32优先(h和te)){
做{
if(te.dwSize>=字段偏移量(THREADENTRY32,th32OwnerProcessID)+
sizeof(例如th32OwnerProcessID)){
printf(“进程0x%04x线程0x%04x\n”,
te.th32OwnerProcessID,te.th32ThreadID);
}
te.dwSize=sizeof(te);
}while(Thread32Next(h,&te));
}
闭合手柄(h);
}
返回0;
}

我感谢你对这一点的快速回复。这是我如此热爱的另一个原因。