关于网友提出的“ 求救!delphi多线程入门问题”问题疑问,本网通过在网上对“ 求救!delphi多线程入门问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 求救!delphi多线程入门问题
描述:多线程Delphi
写了个多线程实例,主要代码如下:
TMyThread1 = class(TMyThread)
protected
procedure Execute;override;
procedure SetPb;
private
i_ca:Integer;
end;
procedure TMyThread1.Execute;
begin
Synchronize(SetPb);
end;
procedure TMyThread1.SetPb;
var
i:Integer;
i_cata:Integer;
begin
i_cata:=i_ca;
if i_cata=1 then
begin
Form1.pb1.Min:=0;
Form1.pb1.Max:=10000;
Form1.pb1.Position:=0;
for i:=0 to 10000 do
begin
Form1.pb1.StepBy(1);
end;
end else
begin
Form1.pb2.Min:=0;
Form1.pb2.Max:=10000;
Form1.pb2.Position:=0;
for i:=0 to 10000 do
begin
Form1.pb2.StepBy(1);
end;
end;
end;
procedure TForm1.btn1Click(Sender: TObject);
var
m1: TMyThread1;
m2: TMyThread1;
begin
m1:=TMyThread1.Create(True);
m1.i_ca:=1;
m1.FreeOnTerminate := True;
m1.Resume();
m2:=TMyThread1.Create(True);
m2.FreeOnTerminate := True;
m2.i_ca:=2;
m2.Resume();
end;
想要实现的功能是点击按钮,两个主窗口的进度条同时跑,可我得到结果是一个一个依次运行的,为什么?
解决方案1: 这个简单 我个人呢比较懒 给你贴个地址吧 人家大牛弄的 举一反三哦
http://www.cnblogs.com/del/archive/2009/02/11/1388700.html
解决方案2: 代码不全,全部都发上来吧。
解决方案3: 代码只有线程1
procedure TMyThread1.Execute;
begin
Synchronize(SetPb);
end;
这里用了同步,可能是这个原因
以上介绍了“ 求救!delphi多线程入门问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2195328.html