DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: qiaoguoqiang
今日帖子: 4
在线用户: 13
导航: 论坛 -> 移动应用开发 斑竹:flyers,iamdream  
作者:
男 ooolinux (ooolinux) ▲△△△△ -
普通会员
2023/2/5 10:44:51
标题:
如何在线程执行完毕以后接着执行一些代码?代码如下: 浏览:727
加入我的收藏
楼主: void __fastcall TForm1::RoundRect1Click(TObject *Sender)
{
  RoundRect1->Enabled=false;
  autoPlay=true;      //开始自动移动方块
  TMyThread *th=new TMyThread(false,this);
//  th->WaitFor(); //WaitFor会使线程循环中动画更新主窗体界面无效
//    delete th;
  autoPlay=false;
  RoundRect1->Enabled=true;
}
----------------------------------------------
-
作者:
男 hs_kill (lzl_17948876) ★☆☆☆☆ -
普通会员
2023/2/5 11:25:59
1楼: 线程结束事件里写呗
----------------------------------------------
http://www.cnblogs.com/lzl_17948876/
作者:
男 ooolinux (ooolinux) ▲△△△△ -
普通会员
2023/2/5 13:06:40
2楼: @1楼 OnTerminate事件中可以用Synchronize吗?
----------------------------------------------
-
作者:
男 ooolinux (ooolinux) ▲△△△△ -
普通会员
2023/2/5 13:24:10
3楼: OnTerminate事件中不用Synchronize直接调用MainForm的函数就行吧?
----------------------------------------------
-
作者:
男 hs_kill (lzl_17948876) ★☆☆☆☆ -
普通会员
2023/2/5 15:56:27
4楼: 如果你用的是TThread那么就不用Synchronize 因为OnTerminate已经是Synchronize调用了

建议你看看源码, 写的很清楚

property OnTerminate: TNotifyEvent read FOnTerminate write FOnTerminate;

procedure TThread.DoTerminate;
begin
  if Assigned(FOnTerminate) then Synchronize(CallOnTerminate);
end;

procedure TThread.CallOnTerminate;
begin
  if Assigned(FOnTerminate) then FOnTerminate(Self);
end;
----------------------------------------------
http://www.cnblogs.com/lzl_17948876/
作者:
男 ooolinux (ooolinux) ▲△△△△ -
普通会员
2023/2/5 18:49:13
5楼: @4楼 我是希望线程执行完后立即执行相关代码,不要通过UI线程消息排队响应消息执行。
----------------------------------------------
-
作者:
男 roadrunner (roadrunner) ★☆☆☆☆ -
盒子活跃会员
2023/2/5 19:59:54
6楼: 需要访问UI的写在OnTerminate里
不需要同步的你直接把代码写在execute里放最后不就好了
----------------------------------------------
-
作者:
男 ooolinux (ooolinux) ▲△△△△ -
普通会员
2023/2/5 21:23:11
7楼: @6楼 有道理,我放在OnTerminate里了,因为一个控件需要enable
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行62.5毫秒 RSS