H
Haishen
Unregistered / Unconfirmed
GUEST, unregistred user!
我开了一个线程为了做一个数据的操作代码如下:
Type //串播单
Map = Class(TThread)
private
procedure MapRun;
protected
procedure Execute;
override;
public
Count : Integer;
end;
procedure Map.Execute();
begin
self.FreeOnTerminate := true;
if not (self.Terminated = true) then
begin
MapRun;
end;
end;
procedure Map.MapRun();
begin
while not adoquery1.eofdo
begin
...(我的代码)
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
//调用
begin
Map.Create(false);
end;
问题是每次我的while循环没做完,线程就不知道为什么自已停止了,请问这是为什么,有什么解决办法,(注:每次线程停止的时间不一定,10次有2次while可以完成,大多数做到一个不定的地方就停止了。)
请各位帮帮忙,我先谢谢了!
Type //串播单
Map = Class(TThread)
private
procedure MapRun;
protected
procedure Execute;
override;
public
Count : Integer;
end;
procedure Map.Execute();
begin
self.FreeOnTerminate := true;
if not (self.Terminated = true) then
begin
MapRun;
end;
end;
procedure Map.MapRun();
begin
while not adoquery1.eofdo
begin
...(我的代码)
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
//调用
begin
Map.Create(false);
end;
问题是每次我的while循环没做完,线程就不知道为什么自已停止了,请问这是为什么,有什么解决办法,(注:每次线程停止的时间不一定,10次有2次while可以完成,大多数做到一个不定的地方就停止了。)
请各位帮帮忙,我先谢谢了!