【API】获取当前进程的线程数

#include <Tlhelp32.h>

    PROCESSENTRY32 ProEntry = {0};

    HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    ProEntry.dwSize = sizeof(PROCESSENTRY32);

    Process32First(hSnap, &ProEntry);
    do 
    {
        wprintf(_T("%s %d %d \r\n"),ProEntry.szExeFile,ProEntry.th32ProcessID,ProEntry.cntThreads);
        // 这里可以设置获取独立进程的线程数。

    } while (Process32Next(hSnap,&ProEntry));

    CloseHandle(hSnap); 

获取当前所有线程信息,你可以使用C++标准库中的`<thread>`头文件中的函,结合操作系统提供的相关API来实现。以下是一个基本的示例代码: ```cpp #include <iostream> #include <thread> #include <vector> #include <Windows.h> // 适用于Windows操作系统的API头文件 // 线程信息结构体 struct ThreadInfo { DWORD threadId; // 线程ID HANDLE threadHandle; // 线程句柄 }; // 获取当前所有线程信息的函 std::vector<ThreadInfo> GetAllThreadsInfo() { std::vector<ThreadInfo> threads; // 获取系统中所有线程的快照 HANDLE threadSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0); if (threadSnapshot == INVALID_HANDLE_VALUE) { std::cerr << "Failed to create thread snapshot." << std::endl; return threads; } // 遍历快照中的所有线程 THREADENTRY32 threadEntry; threadEntry.dwSize = sizeof(threadEntry); if (Thread32First(threadSnapshot, &threadEntry)) { do { if (threadEntry.th32OwnerProcessID == GetCurrentProcessId()) { // 只获取当前进程线程 HANDLE threadHandle = OpenThread(THREAD_ALL_ACCESS, FALSE, threadEntry.th32ThreadID); if (threadHandle != NULL) { ThreadInfo threadInfo; threadInfo.threadId = threadEntry.th32ThreadID; threadInfo.threadHandle = threadHandle; threads.push_back(threadInfo); } } } while (Thread32Next(threadSnapshot, &threadEntry)); } // 关闭快照句柄 CloseHandle(threadSnapshot); return threads; } int main() { // 获取当前所有线程信息 std::vector<ThreadInfo> threads = GetAllThreadsInfo(); // 打印线程信息 for (const ThreadInfo& thread : threads) { std::cout << "Thread ID: " << thread.threadId << std::endl; // 可以通过调用GetThreadTimes等API获取更多线程信息 // ... // 关闭线程句柄 CloseHandle(thread.threadHandle); } return 0; } ``` 这个示例代码使用了Windows操作系统的API获取线程信息,如果你使用的是其他操作系统,你可能需要使用不同的API来实现相同的功能。请注意,这只是一个基本示例,你可以根据自己的需求进行扩展和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值