Thread starter抵住诱惑
抵
抵住诱惑
Unregistered / Unconfirmed
GUEST, unregistred user!
procedure Test;
begin
//.........end;
var Tidword;
TestHwnd:Thandle;
begin
TestHwnd:= CreateThread(nil, 0, @Test, nil, 0, TID);
end;
我记得主程序通过某个 API 函数可以 等待 procedure Test;
里边的内容执行完才结束程序. 具体忘记了,知道的麻烦跟个贴告知,谢谢了!
放
放飞
Unregistered / Unconfirmed
GUEST, unregistred user!
主线程不能进行等待,否则,你的程序将无法响应任何消息,也就是程序会死掉不动了。其实,你可以在线程函数中,向主线程发送消息来通知子线程的状态,主线程仅仅是检测这些状态来获得子线程运行到什么程度了。比如,将主窗体的句柄传递给子线程,然后子线程向主线程发送消息,主线程中的主窗体做个消息响应函数来接受子线程发送的消息。如果你一定要采用等待的方式: //每次等待一秒,然后处理下消息队列,然后接着等待 while WaitForSingleObject(TestHwnd, 1000) = WAIT_TIMEOUTdo
Application.ProcessMessages;这样可以防止主线程陷入无限等待
S
smlabc
Unregistered / Unconfirmed
GUEST, unregistred user!
SUNSTONE的Delphi笔记
Replies
Views
SUNSTONE的Delphi笔记
S
S
SUNSTONE的Delphi笔记
Replies
Views
SUNSTONE的Delphi笔记
S
I
Replies
Views
Replies
Views
Replies
Views
import
I
Share: