b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

TThread.CreateAnonymousThread多线程

电脑杂谈  发布时间:2020-07-18 18:43:28  来源:网络整理

delphi 下载文件_delphi 多线程下载文件_delphi idhttp 下载文件

首先看一个非多线程示例,在执行代码时不能执行其他任何操作(例如拖动表单):

{自定义方法: 在窗体上绘制...}
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.Button1Click(Sender: TObject);
begin
  MyMethod;
end;

delphi 多线程下载文件_delphi 下载文件_delphi idhttp 下载文件

修改为多线程(仅修改一行代码):

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.Button1Click(Sender: TObject);
begin
  TThread.CreateAnonymousThread(MyMethod).Start; //!!!
end;

delphi 多线程下载文件_delphi 下载文件_delphi idhttp 下载文件

代码分析:

1. TThread现在添加了许多类方法(由类名直接调用的方法),TThread.CreateAnonymousThread()是更有用的方法.

delphi 下载文件_delphi idhttp 下载文件_delphi 多线程下载文件

2delphi 多线程下载文件,顾名思义,CreateAnonymousThread用于创建匿名线程对象,其参数是我们需要程中执行的方法.

3. 但是CreateAnonymousThread创建线程后会挂起,您需要手动运行它;下面的Start方法用于唤醒线程.

delphi 多线程下载文件_delphi idhttp 下载文件_delphi 下载文件

4. (以前)您还可以使用Resume方法或Suspended属性来唤醒线程(Suspended: = False;);但是将不建议使用它们,现在您应该使用“开始”启动线程.

CreateAnonymousThread的参数类型TProc是匿名方法(引用)delphi 多线程下载文件,因此代码可以缩写为:

procedure TForm1.Button1Click(Sender: TObject);
begin
  TThread.CreateAnonymousThread( //直接写入方法体
    procedure
    var
      i: Integer;
    begin
      for i := 0 to 500000 do
      begin
        Canvas.Lock;
        Canvas.TextOut(10, 10, IntToStr(i));
        Canvas.Unlock;
      end;
    end //此处无分号
  ).Start;
end;

执行延迟:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-285017-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...