1,593
社区成员
发帖
与我相关
我的任务
分享
procedure TForm1.Button1Click(Sender: TObject);
begin
TThread.CreateAnonymousThread(
procedure
begin
For I:=0 to 50000 do
begin
TThread.Synchronize(nil,
procedure
begin
Form1.Label1.Text:= I.ToString; //创建多个的时候这个依次修改label2、label3等等,这里简单写个过程
end);
end;
end).Start;
end;
procedure TForm1.Button1Click(Sender: TObject);
var myThread:TThread;
begin
myThread:= TThread.CreateAnonymousThread(
procedure
begin
For I:=0 to 50000 do
begin
TThread.Synchronize(nil,
procedure
begin
Form1.Label1.Text:= I.ToString; //创建多个的时候这个依次修改label2、label3等等,这里简单写个过程
end);
end;
end);
myThread.Start;
end;
type
TmyThread = class(TThread)
protected
procedure Execute; override;
end;
procedure TForm1.Button1Click(Sender: TObject);
var myThread:TmyThread;
begin
myThread:= TmyThread.Create;
end;
procedure myProc12;
var a:Integer;
begin
for a := 1 to 100000 do
begin
Sleep(1);
TThread.Synchronize(TThread.Current,procedure
begin
Form1.Label3.Text:= IntToStr(a);
end);
end;
end;
TThread.Synchronize(TThread.Current,procedure
begin
Form1.Label3.Text:= IntToStr(a);
Application.ProcessMessages; //加上这一句
end);
procedure myProc10;
var a:Integer;
begin
for a := 1 to 100000 do
TThread.Synchronize(TThread.Current,procedure
begin
Form1.Label1.Text:= IntToStr(a);
end);
end;
procedure myProc11;
var a:Integer;
begin
for a := 1 to 100000 do
TThread.Synchronize(TThread.Current,procedure
begin
Form1.Label2.Text:= IntToStr(a);
end);
end;
procedure myProc12;
var a:Integer;
begin
for a := 1 to 100000 do
TThread.Synchronize(TThread.Current,procedure
begin
Form1.Label3.Text:= IntToStr(a);
end);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TThread.CreateAnonymousThread(myProc10).Start;
TThread.CreateAnonymousThread(myProc11).Start;
//TThread.CreateAnonymousThread(myProc12).Start;
end;
//Delphi XE7及以上版本
uses System.Threading;
procedure TForm1.Button1Click(Sender: TObject);
begin
TTask.Run(
procedure
var
I: Integer;
begin
for I:=0 to 50000 do
begin
TThread.Synchronize(nil,
procedure
begin
Form1.Label1.Caption:= I.ToString;
end);
end;
end);
end;
//Delphi XE7及以上版本
uses System.Threading;
procedure TForm1.Button1Click(Sender: TObject);
begin
TTask.Run(
procedure
var
I: Integer;
begin
for I:=0 to 50000 do
begin
TThread.Synchronize(TThread.Current,
procedure
begin
Form1.Label1.Caption:= I.ToString;
end);
end;
end);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TThread.CreateAnonymousThread(
procedure
var
I: Integer; //I这个变量要声明
begin
For I:=0 to 50000 do
begin
TThread.Synchronize(nil,
procedure
begin
Form1.Label1.Caption:= I.ToString; //Text改为Caption
end);
end;
end).Start;
end;