如何在线程执行完毕以后接着执行一些代码?代码如下:

ooolinux 2023-02-05 10:47:21
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;
}

 

...全文
132 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanqth 2023-02-05
  • 打赏
  • 举报
回复

创建线程类的时候,可以有一个回调,你将需要在线程执行完成后的内容在回调里处理。

tanqth 2023-02-05
  • 举报
回复
@tanqth 这个回调可以在你线程执行的过程中的任意时间执行,其实OnTerminate事件,也也可以认为是一种回调机制了。
ooolinux 2023-02-05
  • 举报
回复
@tanqth 我是希望线程执行完后立即执行相关代码,不要通过UI线程消息排队响应消息执行
ooolinux 2023-02-05
  • 举报
回复
@tanqth 线程回调怎么写,有没有资料?我几本书都没看到
2条回复
  • 打赏
  • 举报
回复

在线程的OnTerminate事件中处理

ooolinux 2023-02-05
  • 举报
回复
@日立奔腾浪潮微软松下联想 我试试
ooolinux 2023-02-05
  • 举报
回复
@日立奔腾浪潮微软松下联想 OnTerminate事件中可以用Synchronize吗?
ooolinux 2023-02-05
  • 举报
回复
@日立奔腾浪潮微软松下联想 OnTerminate事件中不用Synchronize直接调用MainForm的函数就行吧?
3条回复

5,699

社区成员

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

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