社区
网络通信/分布式开发
帖子详情
WaitForSingleObject等待一个线程一段时间
mozm
2012-06-25 11:03:44
如等待的时间为3秒,若超过这段时间线程还没有结束,WaitForSingleObject 返回WAIT_TIMEOUT,这时不想线程再继续运行下去,请问这应该怎么关闭
...全文
543
9
打赏
收藏
WaitForSingleObject等待一个线程一段时间
如等待的时间为3秒,若超过这段时间线程还没有结束,WaitForSingleObject 返回WAIT_TIMEOUT,这时不想线程再继续运行下去,请问这应该怎么关闭
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
孤独de猫
2012-11-06
打赏
举报
回复
顶下6楼 TerminateThread,这个API 会强行终止线程,但是不会释放线程资源。容易造成内存泄露,用TTread自带的Terminate,然后 在线程中的Execute中加入
while not terminated do begin //..... end;
lyl357159
2012-11-06
打赏
举报
回复
//最多等待3秒让工作者线程自行终止。 if WAIT_TIMEOUT = WaitForSingleObject(f_MonitorThread.Handle, 3000) then begin TerminateThread(f_MonitorThread.Handle, 0); end;
xiaocongzhi
2012-07-10
打赏
举报
回复
TerminateThread这个可用,不过要慎用
aTian2009
2012-07-06
打赏
举报
回复
lz只想用这个WaitForSingleObject 吗?
可以尝试在主线程中用Terminate,
在Execute中
if Terminated then Break;
「已注销」
2012-06-25
打赏
举报
回复
结束其他线程可以使用TerminateThread函数,但是这个做法是非常不建议使用的的。因为你不知道其他的线程正在做什么。强行结束掉他是很粗鲁的行为,意味着你的代码设计得有问题。
mozm
2012-06-25
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
if WaitForSingleObject(hSignObj,3*1000) = WAIT_TIMEOUT then
//跳出线程执行,这有很多方法,如果你用的是delphi的TThread,你可以使用termited := true;
//如果是自己的win32api创建的线程,那你自己根据需要跳出循环就行了,然后exitthread(0)调用
[/Quote]
如你这里是要等待hSignObj这个线程结束,若超时的话,我想调用WaitForSingleObject的线程继续运行,而hSignObj(这个线程是会调用一些阻塞函数的,httpsendrequest之类的)这个线程不继续运行,我试了exitthread(0)这个好像是把调用WaitForSingleObject的线程停止了
「已注销」
2012-06-25
打赏
举报
回复
if WaitForSingleObject(hSignObj,3*1000) = WAIT_TIMEOUT then
//跳出线程执行,这有很多方法,如果你用的是delphi的TThread,你可以使用termited := true;
//如果是自己的win32api创建的线程,那你自己根据需要跳出循环就行了,然后exitthread(0)调用
robotdeng
2012-06-25
打赏
举报
回复
线程无法强制结束...
请修改线程代码, 减小循环体. 我的BLOG有写这个部分.
mozm
2012-06-25
打赏
举报
回复
httpsendrequest这个函数一阻塞就要等很长时间的,也想不到什么方法来处理
多
线程
启动控制台 精确定时
Wait
For
Single
Object
多
线程
启动控制台 精确定时
Wait
For
Single
Object
Wait
For
Single
Object
演示、Window信号用法演示
Wait
For
Single
Object
演示、Window信号用法演示
对话框中
Wait
For
Single
Object
等待
线程
退出导致程序阻塞的原因及解决
今天在调试程序中发现了程序中出现的
一个
问题,具体如下: 在对话框中新建
一个
线程
worker thread,当用户点击cancel时,通知该
线程
函数退出,同时用
Wait
For
Single
Object
等待
该
线程
结束。但是每当用户点击Cancel后,程序会卡在OnCancel函数中的
Wait
For
Single
Object
处,必须要强制结束才能退出。 在网上查了一...
对话框中
Wait
For
Single
Object
等待
线程
退出导致程序阻塞的原因及解决 [转]
http://blog.csdn.net/silvervi/archive/2010/09/09/5874212.aspx 今天在调试程序中发现了程序中出现的
一个
问题,具体如下: 在对话框中新建
一个
线程
worker thread,当用户点击cancel时,通知该
线程
函数退出,同时用
Wait
For
Single
Object
等待
该
线程
结束。但是每当用户点击Cancel后,程序会卡在O...
Wait
For
Single
Object
在多
线程
的情况下,有时候我们会希望
等待
某一
线程
完成了再继续做其他事情,要实现这个目的,可以使用Windows API函数
Wait
For
Single
Object
,或者
Wait
ForMultiple
Object
s。这两个函数都会
等待
Object
被标为有信号(signaled)时才返回的。 那么,信号是什么呢?首先我们可以假设这里存在
一个
文件和两个
线程
,我们规定这个文件同一时刻只能被
一个
线程
所...
网络通信/分布式开发
1,594
社区成员
32,958
社区内容
发帖
与我相关
我的任务
网络通信/分布式开发
Delphi 网络通信/分布式开发
复制链接
扫一扫
分享
社区描述
Delphi 网络通信/分布式开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章