我有一个多线程嵌入式架构,其中包含6个特定于应用程序的进程,这些进程在执行初始化过程时执行。同样,每个都有自己的运行线程数。
我想要做的是根据设备是否连接到电脑来暂停1个特定进程的运行线程。
我试过四处寻找,最接近我发现的是以下内容:How to obtain list of thread handles from a win32 process?
但是,该代码返回所有正在运行的线程的列表。这对我不起作用,因为我试图暂停所有获得的线程,假设它们是从同一个进程获得的,因此我也不检查它们属于哪个进程。
同样,我正在获取另一个进程中进程的运行线程列表。
Windows中是否存在允许此类控制的现有方法,或者我是否需要确定需要从整个列表中挂起哪些线程?
答案 0 :(得分:4)
而不是试图强行暂停线程(这可能会给你带来麻烦,当你暂停"不那么幸运的时刻")你宁愿使用一个名为CreateEvent()
的手册复位。
CreateEvent()
。事件的典型名称是MyCompany_MyProduct_MyFeature_EventName
,以防止意外碰撞。WaitForSingleObject()
开启"设置"事件,等待立即得到满足。