看流星社区

 找回密码
 注册账号
查看: 2332|回复: 1

C++枚举线程方法

[复制链接]

该用户从未签到

发表于 2016-6-29 10:47:19 | 显示全部楼层 |阅读模式
主要使用的下面几个函数:

1、CreateToolhelp32Snapshot

2、Thread32First

3、Thread32Next

所以要引用下面的头文件:
#include <tlhelp32.h>  


枚举线程的代码如下:
// 枚举系统当前所有线程信息  
// 并把信息输出到工程目录下EnumInfo_thread.txt  
BOOL EnumThreadInfo ()  
{  
    // 定义线程信息结构  
    THREADENTRY32 te32 = {sizeof(THREADENTRY32)} ;  
  
    //创建系统线程快照  
    HANDLE hThreadSnap = CreateToolhelp32Snapshot ( TH32CS_SNAPTHREAD, 0 ) ;  
    if ( hThreadSnap == INVALID_HANDLE_VALUE )  
        return FALSE ;  
  
    // 输出线程信息到文件  
    ofstream fout ( "EnumInfo_thread.txt" ) ;  
  
    // 循环枚举线程信息  
    if ( Thread32First ( hThreadSnap, &te32 ) )  
    {  
        do{  
            fout << "ThreadId : "   << te32.th32ThreadID << endl ;  
            fout << '\t' << "OwnerProcessID : " << te32.th32OwnerProcessID << endl ;  
            fout << '\t' << "Usage          : " << te32.cntUsage << endl ;  
            fout << '\t' << "Delta Priority : " << te32.tpDeltaPri << endl ;  
            fout << '\t' << "Base Priority  : " << te32.tpBasePri << endl ;  
        }while ( Thread32Next ( hThreadSnap, &te32 ) ) ;  
    }  
  
    fout.close () ;  
    CloseHandle ( hThreadSnap ) ;  
    return TRUE ;  
}  

该用户从未签到

发表于 2016-6-29 11:02:01 | 显示全部楼层

我就是来看看~么么哒~~
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-3-19 15:43

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表