我要重新定义一个线程,并且在内部定义一个布尔变量,该值从线程外传入,在我的线程内自定义函数中对它调用。我尝试了多次,重新定义了构造函数,发现无法得到我要的结果。请高手赐教。如果传入窗体我倒是成功了。

解决方案 »

  1.   

    线程内部定义变量需要使用threadvar关键字进行声明,这样这个变量才不会被另外的线程所修改,你要问的是不是这个东西啊
      

  2.   

    楼上的这位理解错了,我不是要在线程引用本地线程变量。请见框架:
    Tmythread=class(thread)
       private ...
         myvar:integer;
       public ...
    end;
    constructor create(ttt:integer);
    begin
      myvar:=ttt;
      FreeOnTerminate:=false;
      inherited create(false);
    end;
    调用Tmythread.create(123)
    从delphi提示看它根本没有识别我的线程,提示我123和boolean不匹配。我试过窗口传递,好象没问题,窗口也能显示。Delphi6线程类有没有bug?
      

  3.   

    constructor XXXXXXXX.create(ttt:integer); <--------???????????
    begin
      myvar:=ttt;
      FreeOnTerminate:=false;
      inherited create(false);
    end;