delphi 协程 doroutine bg + ui 嵌套 并行

news/2025/2/28 23:36:24/文章来源:https://www.cnblogs.com/feng88/p/18644160

前言

bg 与 ui 是互相嵌套的,没有终点;就是说 程序 若是高密计算,ui + bg 一切同时并行,快速响应;

示例代码

unit main;interfaceusesWinapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, doroutine, Vcl.ComCtrls;typeTFormMain = class(TForm)Button1: TButton;ProgressBar1: TProgressBar;procedure Button1Click(Sender: TObject);private{ Private declarations }publicend;varFormMain: TFormMain;implementation{$R *.dfm}procedure ui1(task: TTask);
beginFormMain.ProgressBar1.Position := task.getInteger('i');
end;procedure bg1(task: TTask);
begin//doSomeThing http 请求了,或其他 后台业务,bg线程 衍生 100个 待主线程执行的协程for var i := 1 to 100 dobegintask.ui(ui1).data('i', i).start;end;
end;procedure TFormMain.Button1Click(Sender: TObject);
begintask.bg(bg1).start;
end;end.

效果图

image

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

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

相关文章

React中的 ref 及原理浅析

前言 对于 ref 的理解,我们一部人还停留在用 ref 获取真实 dom 元素和获取组件层面上,但实际 ref 除了这两项功能之外,在使用上还有很多小技巧。本章我们就一起深入探讨研究一下 React ref 的用法和原理;本章中所有的源码节选来自 16.8 版本 基本概念和使用 此部分将分成两…

【ESP32】ESP32 SDK入门

ESP-IDF 概述 ESP-IDF 是乐鑫官方的物联网开发框架,适用于 ESP32、ESP32-S、ESP32-C 和 ESP32-H 系列 SoC。它基于 C/C++ 语言提供了一个自给自足的 SDK,方便用户在这些平台上开发通用应用程序。ESP-IDF 目前已服务支持数以亿计的物联网设备,并已开发构建了多种物联网产品,…

QT学习0,安装QT以及单间搭建环境

1.安装QT安装程序 可以使用镜像源进行下载 例如阿里,清华园... 阿里镜像源的qt安装程序网址https://mirrors.aliyun.com/qt/official_releases/online_installers/?spm=a2c6h.13651104.d-5201.2.724e4773zdBZYK 2.下面是点击qt安装程序进行安装 2.1 网速不好的可以更改下载网…

豹狼的日子

昨晚看完最后两集 心潮澎湃 现在也还意犹未尽

使用Xjar给SpringBoot项目jar包加密

1. 新建一个SpringBoot项目 2. 在pom文件添加依赖,github地址:https://github.com/core-lib/xjar <dependencies><!-- 添加 XJar 依赖 --><dependency><groupId>com.github.core-lib</groupId><artifactId>xjar</artifactId><v…

关于CH32V307以太网使用

1、关于仿真 在使用以太网时,不建议使用仿真功能。因为在网络协议栈内部有一个变量需要固定间隔时间去进行累加计数,若使用仿真功能,会导致这个变量停止累加计数,从而导致程序出现异常;2、关于内部10M PHY的使用 在使用内部10M PHY时,内部 10M PHY的时钟由 PLL3 提供,且…

搭建dvwa靶机

# 1、直接使用docker搭建方便很多,这个环境依赖问题没必要多花时间去研究; ubuntu安装docker apt-get update apt-get install apt-transport-https ca-certificates curl gnupg lsb-release curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor …

深入理解Git:从原理到实践的全面指南

Hello World 深入理解Git:从原理到实践的全面指南本文深入剖析Git的核心概念和底层实现原理,包括对象模型、分支管理、合并策略等关键特性。通过理解Git的数据结构和工作机制,帮助开发者更好地处理版本控制中的各种复杂场景,从基础使用者进阶为Git专家。在日常开发中,很多…

墨天轮国产数据库排行榜年终总结-2024年

本文对2024年墨天轮中国数据库流行度排行榜进行了年终盘点,包含多个维度的详细分析整理,欢迎大家阅读交流。图片说明:按照墨天轮中国数据库流行度排行榜分数比例生成 前言: 岁月不居,时节如流。岁末年终,忽焉已至。墨天轮平台已于2024年12月1日公布了中国数据库流行度排行榜…

CISSP备考经验分享2024年12月

https://www.cnblogs.com/iAmSoScArEd/p/18644021 我超怕的 CISSP备考经验分享2024年12月 考试过了,以下是我的备考经历,不一定适合所有人,所以请按照自己的习惯备考。 考试感受 考试形式:CAT模式、中文(感兴趣可以先了解下考试模式:https://www.isc2china.org/cissp-cat…

Gradle下载Plugins插件连接超时 failed: Connection timed out: connect的解决方法

可以去gradle官方plugin仓库看看插件是否存在。 出现超时的问题多半都是网络因素,可能是复杂的网络导致你访问不了吧,配置下plugins可访问使用的仓库即可。 需要注意buildscript在plugins之上的位置。 buildscript {repositories {mavenLocal()maven { url https://maven.ali…