多线程怎么说句柄无效?帮看看
线程单元:
constructor sortthread.create(memo:TMemo);
var
i:integer;
begin
for i:=0 to 40000 do
begin
memo.Lines.Clear;
Memo.lines.add(inttostr(i));
end;
end;
主窗体调用线程:
procedure TForm1.Button1Click(Sender: TObject);
begin
sortthread.create(memo1);
end;
问题点数:20、回复次数:4Top
1 楼mxlinux(mxlinux)回复于 2005-11-01 11:39:46 得分 8
在creat过程里加一句:
inherited Create(true);
即可
因为你重载了Creat方法,需要调用原方法进行必要的初始化Top
2 楼weige250(桂电weige)回复于 2005-11-01 12:03:28 得分 0
怎么我调用了inherited Create(false);也可以呢 ?Top
3 楼mxlinux(mxlinux)回复于 2005-11-01 13:16:49 得分 7
初始化有多种方式,参数决定是否为同步线程,一般设为T,具体可以参看classes.pas里的实现代码Top
4 楼zuoyexingchen(昨夜星尘)回复于 2005-11-03 10:49:11 得分 5
这个是因为你新创建了一个Create方法,对于线程对象如果要创建其它Create方法,一定在Create过程里调用它原来的Create方法,如果不调用那就没有创建线程。Top




