声明不对,需要把mute1作为全局变量,而不是局部变量来处理。

解决方案 »

  1.   

    public                               //我是放在这里,难道这里不是全局变量吗?
        Mute: trtlcriticalsection; private                               //这个应该是局部变量吧。
        Mute: trtlcriticalsection; 
      

  2.   

    你在RDM地类中声明,都是这个线程的局部变量。
    声明成全局的办法:
    1、用threadvar关键字
    2、在MainForm单元中声明。
      

  3.   

    是在写在mainform中的
    public
       Mute: trtlcriticalsection;  
    还有threadvar关键字这个如何使用。
      

  4.   

    对。
    threadvar和var的用法几乎相同。除了两个关键字不一样。
      

  5.   

    那这个定义是放在哪里,放在public 下不行。 publc
     threadvar Mute: trtlcriticalsection;   //这样行不通。
      

  6.   

    还有,我在RDM中使用到了很多个临界区,是否需要定义很多个变量,还是共同一个变量?
      

  7.   

    当然不行了,public下有这么声明的吗?
    public
      var Mute: ...;
    应该是
    type
      ...
    var
      ...
    threadvar
      mute: ...;
      

  8.   

    threadvar定义以后就是全局变量,所有的线程都可以共享这个变量了。
      

  9.   

    "threadvar定义以后就是全局变量,所有的线程都可以共享这个变量了"这句我不知道如何使用,我照前面的做了,但是程序没有反映了,不知道是怎么回事?