delphi 协程 doroutine 成功回调

news/2025/1/5 2:31:51/文章来源:https://www.cnblogs.com/feng88/p/18644358

示例代码

unit main;interfaceusesWinapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.StdCtrls, doroutine;typeTForm3 = class(TForm)Button1: TButton;procedure Button1Click(Sender: TObject);procedure FormCreate(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm3: TForm3;implementation{$R *.dfm}procedure doCompleted(task: TTask);
beginif TThread.Current.ThreadID = MainThreadID thenbeginShowMessage('主线程 执行了 完成回调');end else beginShowMessage('bg线程 执行了 完成回调');end;
end;procedure bgSmall(task: TTask);
begin//doSomeThing http 请求了,或其他 后台业务Sleep(10); //模拟做事//看下日志OutputDebugString(PChar(Format('线程ID: %s,做完了一个!', [TThread.Current.ThreadID.ToString])));
end;procedure bgBig(task: TTask);
begin//开启300个bg小协程做事,完成时做回调for var i := 1 to 300 dobegintask.bg(bgSmall).start;end;
end;procedure TForm3.Button1Click(Sender: TObject);
begin//开启一个大协程做事,做完 主线程 执行回调task.bg(bgBig).onCompleteUi(doCompleted).start;//task.bg(bgBig).onCompleteBg(doCompleted).start; 后台线程执行回调
end;procedure TForm3.FormCreate(Sender: TObject);
beginReportMemoryLeaksOnShutdown := True;
end;end.

效果图

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/861966.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OA系统的天数该怎样计算

在开发一些OA系统的过程中,经常能遇到一个问题,就是时长计算,比如请假有请假的时长,出差有出差的时长,有的公司请假只能按照整天或小时为单位请假,这种都比较好处理,只要排除休息日节假日天数或排除工作小时数加午休( 如果有的话😂)小时数直接相减即可,但是如果需求…

项目管理中的甘特图应用与实践

在项目管理的领域中,甘特图是一种被广泛应用的工具,它以可视化的方式展示项目进度、任务关系以及资源分配等关键信息。甘特图的应用不仅能够帮助项目管理者更好地规划和执行项目,还能让团队成员清晰地了解项目的整体情况。想象一下,在一个复杂的项目中,通过甘特图将任务与…

ASP.NET Core技术研究-探秘依赖注入框架

ASP.NET Core在底层内置了一个依赖注入框架,通过依赖注入的方式注册服务、提供服务。依赖注入不仅服务于ASP.NET Core自身,同时也是应用程序的服务提供者。 毫不夸张的说,ASP.NET Core通过依赖注入实现了各种服务对象的注册和创建,同时也实现了面向抽象的编程模式和编程体验…

读懂华为开发者空间第一课,让云上开发如此简单

课程由浅入深带领开发者了解华为开发者空间,包含鲲鹏、昇腾、鸿蒙等华为优质开发工具和资源、真实项目开发案例等,构建对华为开发者空间的系统性认知框架。近日,华为云上线的《华为开发者空间快速入门》课程,汇聚了理论知识讲解、案例介绍和丰富的实践练习,通过循序渐进的…

【iscsi使用】3.无盘启动CentOS7

目录1.SAN存储及NAS存储 2.CentOS7搭建iscsi服务器 3.无盘启动CentOS7前言业务中遇到这样一个问题: 使用别人的GPU服务器,来跑自己的训练数据。 因为数据的特殊性,一旦数据落盘到GPU服务器,硬盘必须交给数据方。数据方也提出,可提供同型号同容量的硬盘更换。但是机器方考虑…

.NET Core技术研究-HttpContext访问的正确方式

将ASP.NET升级到ASP.NET Core之后,相信大家都会遇到HttpContext.Current无法使用的问题。这也是我们迁移ASP.NET Core必须解决的问题。 先列一下使用HttpContext的具体场景: 1. 在Controller层访问HttpContext 2. 在中间件中使用HttpContext 3. 在数据访问层使用HttpContext …

chrome播放webRTC的H265视频方法

需求描述 最近有需求实现浏览器直接播放摄像头视频 鉴于Camera本身支持了rtsp流,本想web直接播放rtsp,但是还不行,搜了一下webRTC实现的效果和延迟会好一些。于是就使用了mediaMTX转了下rtsp的流,变为webRTC。 随便写了个h5页面对视频进行播放,使用下面代码的话替换一下sr…

在Excel 2013中调出开发工具

打开Excel 2013,点击左上角的【文件】菜单,在【文件】菜单下,选择【选项】按钮 在弹出的【Excel选项】界面中,选择【快速访问工具栏】。在【自定义功能区】处,勾选【开发工具】选项。设置完成后,关闭【选项】界面。这时,在功能区靠右端就可以看到新增加的【开发工具】选…

库卡机械臂驱动器KPS600故障维修

首先,当出现库卡机器人驱动器过载时,首要任务是确认过载的原因。过载可能由多种因素引起,如电源电压不稳定、负载过大、电机故障或控制器设置不当等。通过检查电源电压、负载情况、电机运行状态以及控制器设置,我们可以初步判断KUKA工业机械手驱动器过载的根源。 一旦确定了…

流量分析 - 练习篇2

L1-2 流量分析流量包描述:某天晚上安服仔小辉辉上班摸鱼期间突然发现服务器登入页面被挤掉线了,于是第六感告诉他,服务器肯定是被黑客攻击了,于是他赶紧把服务器的网线拔了并调取了那段时间的流量,然后慌忙的找到你,求求你救救安服仔吧1.分析L1-2.pcapng数据包文件,通过…

Centos 7.9部署ldap 2.4.44

1、环境准备 [root@ldap81 openldap]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [root@ldap81 openldap]# uname -r 3.10.0-1160.119.1.el7.x86_64systemctl stop firewalld systemctl disable firewalld setenforce 0 hostnamectl set-hostname ldap81…