::SuspendThread( hThread1);这个函数怎么有时候可以暂停线程,有时候不可以暂停

p5655364p 2010-08-26 05:36:16
::SuspendThread( hThread1);这个函数怎么有时候可以暂停线程,有时候不可以暂停,我是在程序中创建10个线程,然后对应的去暂停,但是好像不可以暂停了,我在创建线程传递给线程函数一个结构体数组,会不会是这个原因啊,还是什么原因,谢谢回答的人
...全文
336 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
fly4free 2010-08-31
  • 打赏
  • 举报
回复
换个思路把,你为什么要suspendthread?
它就是使某线程不再参加“被调度”了

即使你真的调用成功了,你知道它停在哪里了吗?
「已注销」 2010-08-31
  • 打赏
  • 举报
回复
一般难以暂停,只有那个线程执行Sleep函数才可以
Eleven 2010-08-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 p5655364p 的回复:]
引用 3 楼 fangongdalu7148 的回复:
看看SuspendThread 调用成功没,,GetLastError 看看什么错误


没有调用成功,GetLastError 返回的值是6,说明这个线程句柄无效,怎么回事啊,我以前也是这样创建的,可以暂停的,但是现在不知道怎么回事?
[/Quote]
你的线程不会已经终止结束了吧。。。
begges 2010-08-28
  • 打赏
  • 举报
回复
会不会是线程已经停止运行了啊,调用之前用GetExitCodeThread看下是否运行着呢!
p5655364p 2010-08-28
  • 打赏
  • 举报
回复
你加我的qq啊,因为代码太多了,我发给你代码,你看看是什么地方出问题了
hilevel 2010-08-28
  • 打赏
  • 举报
回复
既然是线程句柄无效,那错误应该在别处
还是贴代码吧
p5655364p 2010-08-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fangongdalu7148 的回复:]
看看SuspendThread 调用成功没,,GetLastError 看看什么错误
[/Quote]

没有调用成功,GetLastError 返回的值是6,说明这个线程句柄无效,怎么回事啊,我以前也是这样创建的,可以暂停的,但是现在不知道怎么回事?
QQ282881515 2010-08-26
  • 打赏
  • 举报
回复
牵扯到内核的东西。。得看看你的线程被唤醒了几次了。若是被唤醒了两次就得调用SuspendThread两次才能挂起。内核对象里边有个计数器在计数 。 有代码就好了
zgsdzhaolanxiang1 2010-08-26
  • 打赏
  • 举报
回复
If the thread is making a kernel call, SuspendThread fails. An application might need to repeat the SuspendThread several times for it to succeed.
如果 这个线程正在调用一个内核函数,SuspendThread 失败.程序需要多调用几次SuspendThread 才能成功
zgsdzhaolanxiang1 2010-08-26
  • 打赏
  • 举报
回复
看看SuspendThread 调用成功没,,GetLastError 看看什么错误
p5655364p 2010-08-26
  • 打赏
  • 举报
回复
你加我的qq,我把代码发给你,qq是1192866550
wltg2001 2010-08-26
  • 打赏
  • 举报
回复
没有代码说不清楚

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧