thread中需要在implementation下定义全局变量,创建多个实例时冲突!详见帖子解决方法
thread中需要在implementation下定义全局变量,创建多个实例时冲突!详见帖子
我的代码:
type
Taa = class(TObject)
public
。。。
end;
Tbb = Calss(TThread)
public
...
end;
implementation
var cc:integer;
{aa}
procedure TAA....
begin
cc:=1;
end;
{bb}
procedure TBB....
var aa:Taa;
begin
aa:=Taa.create;
cc:=2;
end;
end.
因为变量cc在Taa和TBB中都要用,所以定义在implementation中,但创建多个TBB线程时,cc就是最后一个创建线程中的值,请问cc应该怎么定义才能每个线程独有的!
------解决方案--------------------
只要是公共的变量,其它地方只要知道实体,那就可以访问了
这个你应该明白的。 就好像Form1访问Form2的变量一样。
------解决方案--------------------
把tbb做为参数传进去不就得了
我的代码:
type
Taa = class(TObject)
public
。。。
end;
Tbb = Calss(TThread)
public
...
end;
implementation
var cc:integer;
{aa}
procedure TAA....
begin
cc:=1;
end;
{bb}
procedure TBB....
var aa:Taa;
begin
aa:=Taa.create;
cc:=2;
end;
end.
因为变量cc在Taa和TBB中都要用,所以定义在implementation中,但创建多个TBB线程时,cc就是最后一个创建线程中的值,请问cc应该怎么定义才能每个线程独有的!
------解决方案--------------------
只要是公共的变量,其它地方只要知道实体,那就可以访问了
这个你应该明白的。 就好像Form1访问Form2的变量一样。
------解决方案--------------------
把tbb做为参数传进去不就得了