挂起一个进程
来源:互联网 发布:csol三米优化刀 编辑:程序博客网 时间:2024/04/30 05:59
挂起一个进程下的所有线程。
void SuspendProcess(DWORD dwProcessId , BOOL bSuspend){HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD , dwProcessId);if ( hSnapShot != INVALID_HANDLE_VALUE){THREADENTRY32 te = {sizeof(te)};BOOL fOk = Thread32First(hSnapShot , &te);for (; fOk ; fOk = Thread32Next(hSnapShot , &te)){if (te.th32OwnerProcessID == dwProcessId){HANDLE hThread = OpenThread(THREAD_SUSPEND_RESUME , FALSE , te.th32ThreadID);if (hThread != NULL){if (bSuspend){SuspendThread(hThread);}else{ResumeThread(hThread);}}CloseHandle(hThread);}}CloseHandle(hSnapShot);}}
但是不能保证线程在动态创建和销毁的过程中不发生问题。就好像一个vector<int>有另一个线程在操纵里面的元素的产生和消失没,那么此时你对每个元素的操作都可能有问题。也就是说这个快照是你该进程执行时的快照,经过一段时间后,那些个线程就不是原来的线程了。所以这个函数有潜在的问题。
windows核心编程
- 挂起一个进程
- 挂起一个进程
- 挂起和恢复一个进程
- 挂起一个正在运行的进程
- websphere 进程挂起
- 使用oradebug挂起进程
- 用oradebug挂起进程
- 进程抢占、阻塞、挂起
- 进程的挂起
- About 进程挂起
- 进程挂起wait_event_interruptible
- 进程的挂起状态
- 一个进程仅存在给定类型的一个挂起信号,同一进程同样类型的其他信号不被排队
- 挂起一个任务
- 挂起进程和进程的阻塞和挂起的区别
- system会挂起父进程
- 安装SQLServer2000提示进程挂起
- 安装SQLServer2000提示进程挂起
- javascript检查表单数据是否改变
- PKU 2886 反素数+线段树
- Exception when run load test use visual studio.
- PHP中set_time_limit
- 智慧可以求生
- 挂起一个进程
- sqlserver是用触发器来实现 insert 后 返回自增 行的id号
- VS2008学习
- POJ-2985-The k-th Largest Group
- UML中的泛化,关联,依赖
- maven自定义db2的jar包
- repeater 绑定显示时间的不同格式
- 一只苹果
- STL vector用法介绍