主线程等待一个 无阻塞函数 死循环子线程的安全退出
2013-04-28 12:47
246 查看
子线程:
procedure TreadThread.Execute;
begin
inherited;
FreeOnTerminate := True;
while not Terminated do begin
////dosomething;
end;
Sleep(100);
end;
end;
主线程:
var
H: array[0..0] of Thandle;
begin
try
H[0] := RCThread.handle;
// 安全退出子线程
RCThread.Terminate;
if MsgWaitForMultipleObjects(1, H, True, 1000, QS_ALLINPUT) = WAIT_OBJECT_0 then begin
//线程已经安全退出
end;
except
on e: Exception do
ShowMessage(e.Message);
end;
end;
procedure TreadThread.Execute;
begin
inherited;
FreeOnTerminate := True;
while not Terminated do begin
////dosomething;
end;
Sleep(100);
end;
end;
主线程:
var
H: array[0..0] of Thandle;
begin
try
H[0] := RCThread.handle;
// 安全退出子线程
RCThread.Terminate;
if MsgWaitForMultipleObjects(1, H, True, 1000, QS_ALLINPUT) = WAIT_OBJECT_0 then begin
//线程已经安全退出
end;
except
on e: Exception do
ShowMessage(e.Message);
end;
end;
相关文章推荐
- BonceCP多线程测试...让主线程等待所有子线程退出
- 编写一个应用程序,除了主线程外,还有两个子线程。两个子线程对同一个数据操作,其中一个线程负责对该数据做递增操作,一个线程负责对该线程做递减操作。当这个数据小于0的话,递减操作等待,当这个数据大于100
- Java父线程(或是主线程)等待所有子线程退出的实例
- windows核心编程之使用线程APC回调安全退出多个等待线程
- [c/c++] 一个进程有多个线程,用什么方法让主线程不退出更好,要求占用资源最少,效率最高
- Java父线程(或是主线程)等待所有子线程退出
- 用一个工作线程来发送询问命令,等待接收到下位机应答数据后退出。如果两秒下位机未应答,则重发询问命令。重发10次下位机不应答,则认为通信故障,
- [c/c++] 一个进程有多个线程,用什么方法让主线程不退出更好,占用资源最少,效率最高?
- 主线程等待所有子线程执行完毕例子
- 黑马程序员——java中两个线程对同一个数据做不同操作的安全问题
- 对话框中WaitForSingleObject等待线程退出导致程序阻塞的原因及解决
- UNIX环境高级编程——主线程与子线程的退出关系
- c#如何实现一个线程暂停,等待用户输入文本后继续运行?
- java 安全退出线程详解
- java中,如何安全的结束一个正在运行的线程?
- 【原创】《Linux高级程序设计》杨宗德著 - Linux多线程编程 - 线程退出与等待 分类: Linux --- 应用程序设计 2014-11-19 18:04 64人阅读 评论(0) 收藏
- 这里实现一个基于数组的线程安全的循环队列
- Java线(一个):线程安全的和不安全
- Java并发:主线程等待多个子线程执行完才继续执行
- 在子线程中改变一个全局变量,然后再通知主线程