如何让线程休眠

 我来答
zxh4567
2014-11-06 · TA获得超过6.1万个赞
知道大有可为答主
回答量:2.2万
采纳率:83%
帮助的人:1.2亿
展开全部
  改用SleepEx,alert参数开到TRUE。
需要唤醒的时候用QueueUserAPC给那个线程一个apc(apc函数就算是空的也没关系)即可

  追问
  就是说,如果只是唤醒,不做任何操作,只需要填写HANDLE参数?其余两个都可以置为NULL?但是有个问题哈,我现在是让主函数所在的那个线程休眠了,如何获得其HANDLE?

  回答
  不行不行不行,不能NULL。第一个参数你要写一个空的函数给它,就是说函数要有,里面可以只有一个return其他什么也没有。

获取当前线程的handle,你可以调用GetCurrentThread函数,这个函数返回的是一个“伪”HANDLE,再通过DuplicateHandle得到一个“真”HANDLE(这些必须在主线程完成,duplicatehandle的时候就自己进程复制给自己进程,送进入的是伪HANDLE但是拿到的是真HANDLE)。获取到真句柄以后,就可以给其他线程用了。

不复制的话,这个HANDLE对于任何线程都是“自己”,就操作不了主线程了

  
  ———————————————分割线——————————————————
  满意请采纳(⊙o⊙),以上是软硬谦施团队为你带来的回答。

  如果有什么不懂的可以追问,以后有什么问题可以向我提问或者向我的团队提问。(*^__^*) 嘻嘻……
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式