社区
网络通信/分布式开发
帖子详情
WaitForSingleObject等待一个线程一段时间
mozm
2012-06-25 11:03:44
如等待的时间为3秒,若超过这段时间线程还没有结束,WaitForSingleObject 返回WAIT_TIMEOUT,这时不想线程再继续运行下去,请问这应该怎么关闭
...全文
549
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
首先,**多
线程
**是指在单个进程中执行多个独立的代码段,每个代码段被称为
一个
线程
。多
线程
可以提高程序的执行效率,特别是在CPU密集型或I/O密集型任务中,通过并行处理不同任务,可以充分利用处理器资源。然而,多...
Wait
For
Single
Object
演示、Window信号用法演示
`
Wait
For
Single
Object
`是Windows API中的
一个
函数,位于`kernel32.dll`库中,其主要作用是让当前
线程
进入
等待
状态,直到指定的对象处于特定状态(如被信号化)。这个函数可以用于
等待
事件对象(如事件、互斥体、信号...
对话框中
Wait
For
Single
Object
等待
线程
退出导致程序阻塞的原因及解决
今天在调试程序中发现了程序中出现的
一个
问题,具体如下: 在对话框中新建
一个
线程
worker thread,当用户点击cancel时,通知该
线程
函数退出,同时用
Wait
For
Single
Object
等待
该
线程
结束。但是每当用户点击Cancel后,...
Wait
For
Single
Object
在多
线程
的情况下,有时候我们会希望
等待
某一
线程
完成了再继续做其他事情,要实现这个目的,可以使用Windows API函数...首先我们可以假设这里存在
一个
文件和两个
线程
,我们规定这个文件同一时刻只能被
一个
线程
所...
深入了解Windows
线程
同步:使用
Wait
For
Single
Object
Wait
For
Single
Object
是
一个
在多
线程
编程中常用的函数,它允许
一个
线程
等待
指定的同步对象变为信号状态。这个同步对象可以是
一个
互斥量、信号量、事件对象或者
等待
定时器。其函数原型如下所示:在这段代码中,hHandle...
网络通信/分布式开发
1,594
社区成员
32,958
社区内容
发帖
与我相关
我的任务
网络通信/分布式开发
Delphi 网络通信/分布式开发
复制链接
扫一扫
分享
社区描述
Delphi 网络通信/分布式开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章