如何知道线程结束了?

xpei 2003-02-25 02:03:27
如何知道一个线程结束了?假设:
for i:=0 to 99 do
myThread:=TThread.Create(False);

如何知道最后一个线程执行完了!!!??
...全文
29 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyclin 2003-02-25
  • 打赏
  • 举报
回复
很简单:
  在创建时,给线程一个ID,
  在结束时,PostMessage返回一个ID,然后判断window消息中ID数
307 2003-02-25
  • 打赏
  • 举报
回复
强烈同意 sysu(死树)!!
有问题请发信息到我的E-mail:guangbowang@163.com
Wnyu 2003-02-25
  • 打赏
  • 举报
回复
WaitForMultipleObjects用于判断现在结束的是哪个线程.
sysu 2003-02-25
  • 打赏
  • 举报
回复
Delphi有个自带的线程例子:
\program files\Borland\Delphi6\Help\Examples\Prgrsbar\

弄个计数,收到一个消息+1,到100就知道执行完了。
Wnyu 2003-02-25
  • 打赏
  • 举报
回复
Wait Functions
WaitForMultipleObjects
WaitForSingleObject
xpei 2003-02-25
  • 打赏
  • 举报
回复
我只有一个线程类,
我用循环创建了100个线程类的实例,
那就是说我必须收到100个消息才能确定线程全部执行完了?
skyclin 2003-02-25
  • 打赏
  • 举报
回复
published
destructor Destroy; override;

destructor TThreadQuery.Destroy;//线程在自动销毁执行.......
begin
PostMessage(xFrm.Handle,wm_ThreadDoneMsg,0,0);
inherited destroy;       //用PostMessage函数可以告诉调用者,线程相关性的消息。如线程标识....
end;

在线程结束时,采PostMessage函数告诉调用的窗体一个消息,结束了.
然后你再捕获这window消息

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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