Delphi 的匿名多线程

Posted redhat588

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi 的匿名多线程相关的知识,希望对你有一定的参考价值。

技术图片

 

 

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
  Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    btn1: TButton;
    procedure btn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure MyMethod;
var
  i: Integer;
begin
  for i := 0 to 500000 do
  begin
    Form1.Canvas.Lock;
    Form1.Canvas.TextOut(10, 10, IntToStr(i));
    Form1.Canvas.Unlock;
  end;

end;

procedure TForm1.btn1Click(Sender: TObject);
begin
  TThread.CreateAnonymousThread(MyMethod).Start;
end;

end.

代码分析:

1、TThread 现在增加了许多 class 方法(直接通过类名调用的方法), TThread.CreateAnonymousThread() 就是比较有用的一个.

2、顾名思义, CreateAnonymousThread 是建立匿名线程对象, 它的参数是我们需要在线程中执行的方法.

3、但 CreateAnonymousThread 建立线程后是挂起的, 需要手动运行它; 后面的 Start 方法就是用来唤醒线程的.

4、(以前)唤醒线程还可以使用 Resume 方法或 Suspended 属性(Suspended := False;); 但它们即将被废弃了, 现在应使用 Start 来启动线程.


以上是关于Delphi 的匿名多线程的主要内容,如果未能解决你的问题,请参考以下文章

Delphi 多线程的一个代码如何写

Delphi多线程怎么处理?

如何启动匿名线程类

Delphi怎样实现多线程

delphi之多线程编程

delphi 多线程