TThread,Delphi线程

Delphi----TThread的使用方法 Delphi----TThread的使用方法TThread的使用方法简述继承的TThread接口具体实现相关补充(TFUN,property) TThread的使用方法 简述 TThread是Delphi的一个线程类,与win32的的系统调用相比,TThread的功能更丰富,对用户而言自由度更高。下面的代码,会针对TThread的继承使用和同步进行展开。 继承的TThread接口 TFun =... 阅读详情

TThread类   Thread类是Delphi语言提供的线程类,该线程类可以完成大多数的线程操作

TThread类的属性   

 1.(1)FreeOnTerminate属性      

 当线程终止时是否自动删除线程对象.默认值为True;  语法:property FreeOnTerminate: Boolean;   

2 Priority属性      指定线程的优先级.   property Priority: TTreadPriority;      

3 ReturnValue属性       线程终止时,用该属性为其他线程传递一个返回值.   

 4 Suspended属性      指定线程是否处于挂起状态   

 5 Terminated       线程运行晨,如果将属性为True时,线程终止  

 6 ThreadID属性      线程的惟一标识   

7 Handle属性      线程句柄    

TThread类方法    

 DoTerminate: 调用线程对象DoTerminate方法可以触发线程的OnTerminate事件    

 Execute:线程的执行部分都写在该有方法中.必须实现的    

 Resume:当线程对象处于暂停状态时,调用此方法可以恢复线程运行   

  Suspend:暂停线程    

 Synchronize:线程同步    

 Terminate:终止线程    

 WaitFor:等待线程对象的终止,并返回线程对象的ReturnValue属性值   




unit Unit2;


interface


uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;


type


  TMyThread = class(TThread)
   protected
      procedure Run();
      procedure Execute;override;
  end;


  


  TfrmDemo = class(TForm)
    ProgressBar1: TProgressBar;
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


var
  frmDemo: TfrmDemo;


implementation


{$R *.dfm}


{ TMyThread }


procedure TMyThread.Execute;
begin
  inherited;
  //线程同步
  Synchronize(Run);
end;


procedure TMyThread.Run;
var
  I: Integer;
begin  
  with frmDemo do 
  begin 
     for I := 0 to ProgressBar1.Max do
    begin 
     Label1.Caption := '工作线程运行中';
     ProgressBar1.Position := i;
     Application.ProcessMessages;  
    end;
  end;
end;


procedure TfrmDemo.Button1Click(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to ProgressBar1.Max do
  begin 
     Label1.Caption := '主线程运行中';
     ProgressBar1.Position := i;
     Application.ProcessMessages;
  end;
end;


procedure TfrmDemo.Button2Click(Sender: TObject);
var 
  MyThread: TMyThread;
begin
  MyThread := TMyThread.Create(false);  
end;


procedure TfrmDemo.FormCreate(Sender: TObject);
begin
  progressbar1.Max := 1000000;
end;


end.

【delphi11】delphi进阶【七、多线程编程在Delphi中的实现】 在深入Delphi的多线程编程之前,首先要理解并发(Concurrency)和多线程(Multithreading)的概念。:并发是指系统能够处理多个任务的能力,这些任务可能会交错执行,但在任意时刻,可能只有一个任务在执行。:多线程是并发的一种形式,它允许在同一个程序中同时运行多个线程来执行不同的任务。 阅读详情

相关推荐

delphi判断线程状态

delphi判断线程状态

delphi多线程TThread详解

你的程序就必须等10秒以后才能关闭,受得了吗。VCL中,工作线程执行在Execute方法中,你必须从TThread继承一个类并覆盖Execute方法,在这个方法中,所有代码都是在另一个 线程中执行的,除此之外,你的线程类的其他方法都在主线程执行,包括构造方法,析构方法,Resume等,很多人常常忽略了这一点。在优快云论坛上看到一些人问,我的窗口在线程中调用为什么出错,主线程怎么向其他线程发送消息等等,其实,我们在抱怨线程难用时,也要想想我们使用的方法对不对,只要遵循一些正确的使用规则,线程其实很简单。

疯流人物 2584

从频谱分析到硬件加速:用ZYNQ-7020+FFT IP核实现实时信号处理的完整方案

本文详细介绍了如何利用ZYNQ-7020和FFT IP核实现实时信号处理的完整方案,涵盖系统架构设计、硬件加速实现及性能优化。通过异构计算架构,该方案将1024点FFT处理延迟压缩至28μs,显著提升工业自动化和无线通信等领域的实时频谱分析效率。

weixin_33704234的博客 467

DELPHI-线程的终止和退出

在Delphi中使用线程,当窗体关闭时,如果窗体中启用了线程,一般需要手动关闭,以释放资源。 常用来结束线程的代码为:         PcmThrd.Terminate;         PcmThrd.WaitFor; 即先触发Terminate方法,然后等待线程的结束。 这种方法要求线程不能使用FreeOnTerminate := True; ,否则在WaitFor即将结束的时

chinajobs的专栏 1万+

【Linux】实际项目应该如何完成?--安防监控系统项目的总结

到目前为止我也做个5、6个嵌入式项目,但以往都是从零开始自己做,也就是毫无计划,想到那里做那里,有想法就会去实现,就这样导致我碰到了很多坑,也消耗了我许多时间,当然,不是说这样不好,因为在其中我也得到了一个很好的锻炼与练习,但是这不适用于在工作中去这样做。...

修成真的博客 6727

电容式麦克风:从原理到实际电路波形解析

本文深入解析电容式麦克风的工作原理,从核心的振膜与背板结构、电荷锁定机制到场效应管放大器的作用。通过实物拆解与等效电路分析,阐明声音振动如何转换为电压信号,并指导如何用示波器实测波形,直观展现声电转换过程,适合电子爱好者和音频技术学习者。

Black的专栏 1080

Delphi中的线程类Thread

原文:http://www.heibai.net/article/info/info.php?infoid=22594   Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就完了。然而这并不是多线程编程的全部,我写此文的目的在于对

gencheng的专栏 2215

单细胞实战之亚细胞分群从T/NK至CD4+T细胞——从入门到进阶(中级篇1)

亚细胞分群从T/NK至CD4+T细胞

zfyyzhys的博客 6389

TThread delphi 线程

<br />TThread线程<br /><br />TThread对象的方法和事件<br /><br />方法和事件      说       明<br />Create方法          建立线程,当参数CreateSuspended为True时,线程被创建后处于挂起状态;否则,线程被创建后便可以分配CPU时间投入运行。<br />Excute方法            线程执行代码。该方法在TThread类中被 声明为虚拟的抽象方法,因此,在派生的线程类中必须覆盖该方法并给予实现。Excute方法

zhengbo2006的专栏 1313

Proteus 8.9仿真五路抢答器:从74LS148编码到NE555报警的保姆级电路拆解

本文详细解析了使用Proteus 8.9仿真五路抢答器的完整设计流程,从74LS148优先编码器到NE555定时报警电路。通过保姆级的电路拆解和芯片选型指南,帮助读者掌握数字电路中的编码、锁存、译码和定时等核心技术,实现稳定可靠的抢答系统仿真。

weixin_30836759的博客 380

零售-公司间关联交易退货STO的实现方式

零售-公司间关联交易采购 STO-退货 集团公司下经常会出现一家公司和另外一家公司的公司间的关联交易,如跨公司销售、总分公司之间采购,分公司之间的采购等业务;通常公司间采购会采取STO的模式来实现(根据业务模式可以将库存转储统一做成STO的模式,公司间STO、同公司工厂间、同工厂库存地点间 的STO SAP都是支持的); 公司间STO 正向A向B采购都很熟悉,公司间退货STO的其实也是比较普遍的业务现象,很多实施着也将其做成反向的STO(B向A采购),而不是退货STO(A向B,item 选择return的标

weixin_45518759的博客 2832

安全的结束delphi线程tthread

在使用delphi做开发时,使用线程可以从TThread继续,然后覆盖execute方法,这样我们的线程类就OK了,在execute写上要处理的代码就可以。当线程的执行从execute退出时线程也就结束了,这能正确的释放建立tthread时的一些资源,如果加while not terminated do...end中执行,调用terminate其实也是一个道理。delphi中线程结束代码如下:

沧海一粟 6525

详解岭回归与L2正则化

最小二乘法存在不可逆和病态问题,导致解析解不可计算或不稳定,岭回归是一种有效的解决方法,以损失无偏性来换取稳定解, 本文介绍详细介绍了岭回归的基本原理,并从L2正则化角度来进行了解释。

Luoyingfeng的博客 1万+

Delphi中的线程类 - TThread详解

Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就完了。然而这并不是多线程编程的全部,我写此文的目的在于对此作一个补充。线程本质上是进程中一段并发运行的代码。一个进程至少有一个线程,即所谓的主线程。同时还可以有多个子线程。...

aprfnge03122的博客 259

【STM32实物】基于STM32的扫地机器人/小车控制系统设计

扫地机器人系统采用分层结构设计,主要包括底层硬件控制层、中间数据处理层和上层用户交互层。底层硬件控制层负责对各个硬件模块进行控制和数据采集,中间数据处理层负责对采集到的数据进行处理和解算,上层用户交互层负责与用户进行交互并显示系统状态信息。

嵌入式阿齐Archie 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

delphi android 多线程,Delphi中使用TThread进行多线程开发总结

最近项目的Demo开发使用Delphi 2010,其中使用了多线程开发技术这里采用VCL的TThread类完成多线程开发,直接使用CreateThread的办法之前用过很多,这里就当练习,试试采用TThread类TThread类类似VC中的CThread,主要是采用面向对象思想对CreateThread封装了一层,方便多线程的代码编写,线程执行所需要的相关参数可以很方便的设置,线程的操作和线程状态...

weixin_35657965的博客 742

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Delphi中线程类TThread 实现多线程编程

Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就完了。然而这并不是多线程编程的全部,我写此文的目的在于对此作一个补充。线程本质上是进程中一段并发运行的代码。一个进程至少有一个线程,即所谓的主线程。同时还可以有多个子线程。当一个进程...

weixin_33755554的博客 1597

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

delphi多线程TThread类介绍

Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就完了。然而这并不是多线程编程的全部,我写此文的目的在于对此作一个补充。    线程本质上是进程中一段并发运行的代码。一个进程至少有一个线程,即所谓的主线程。同时还可以有多个子线程。当

9861

delphi线程tthread代码分析

Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对 TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就完了。然而这并不是多线程编 程的全部,我写此文的目的在于对此作一个补充。 线程本质上是进程中一段并发运行的代码。一个进程至少有一个线程,即所谓的主线程。同时还可以有多个子线程

rznice的专栏 2497

Delphi 实现多线程编程的线程类 TThread

http://blog.youkuaiyun.com/henreash/article/details/3183119 Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到, 但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就完了。 然而这并不是多线程编程的全部,我写此文的目的在于对此作一个...

weixin_33888907的博客 260

Delphi中的线程类 - TThread详解之一

原文出处: http://blog.youkuaiyun.com/zhdpopo/archive/2008/09/24/2965743.aspx Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就完了。然而这并不是多线程编程的全部,

tjb_1216的专栏 1245

多线程的基本概念和Delphi线程对象Tthread介绍

多线程的基本概念和Delphi线程对象Tthread介绍 作者:xiaoru WIN 98/NT/2000/XP是个多任务操作系统,也就是:一个进程可以划分为多个线程,每个线程轮流占用CPU运行时间和资源,或者说,把CPU 时间划成片,每个片分给不同的线程,这样,每个线程轮流的“挂起”和“唤醒”,由于时间片很小,给人的感觉是同时运行的。 多线程带来如下好处: 1)避免瓶...

weixin_30572613的博客 327
上一篇: 构建自己的Ngrok服务器
下一篇: Npm 安装weex-toolkit 使用淘宝镜像
ufocode
博客等级 码龄23年 36粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值