2019-06-24 Delphi多线程2

https://www.cnblogs.com/chaosc/p/5819178.html

------------------------一部分内容

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;

type

  TMyThread = class(TThread)

  private

    { Private declarations }

  protected

    procedure Execute; override; {执行}

    procedure Run; {声明多一个过程,把功能代码写在这里再给Execute调用}

  end;

  TForm1 = class(TForm)

    btn1: TButton;

    procedure btn1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

{$R *.dfm}

var

  MyThread:TMyThread; {声明一个线程类对象}


procedure TMyThread.Run;

var

  i:integer;

begin

  for i := 0 to 500000 do

  begin

    Form1.Canvas.Lock;

    Form1.Canvas.TextOut(10,10,IntToStr(i));

    Form1.Canvas.Unlock;  //注意调用的空间都得标注其来源 ,比如form1.

  end;

end;


procedure TMyThread.Execute;

begin

  { Place thread code here }

  FreeOnTerminate:=True; {加上这句线程用完了会自动注释}

  Run;

end;


procedure TForm1.btn1Click(Sender: TObject);

begin

  MyThread:=TMyThread.Create(False); {实例化这个类,为False时立即运行,为True时可加MyThread.Resume用来启动}

end;


----------------------------------------

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容