本帖最后由 dyfh 于 2011-06-30 15:21:58 编辑

解决方案 »

  1.   

    ClientReceiveThread2.Suspend;
    是线程挂起啊兄弟
      

  2.   

    线程代码中加入FreeOnTerminate := true则线程执行完毕会自释放的
      

  3.   

    memo4602.Lines.Add(strRecv);在线程不能直接访问VCL控件,否则会造成问题。
      

  4.   

    to funxu:
    我知道ClientReceiveThread2.Suspend;是线程挂起,但是我看网上有的资料关闭线程的方式是先suspend后free,所以就这么用了。
    我现在改成:
        ClientReceiveThread.Terminate;
        ClientReceiveThread.Destroy;
    就不出错了to SQLDebug_Fan:
    不能直接访问VCL的话,如果我想使用这些控件要怎么做?
      

  5.   

    因为很多vcl不是线程安全的,所以不是不能访问,而是不能安全的访问,容易共享冲突,Lz可以参考下线程同步的例子,synchronize,和临界区
      

  6.   

    另外补充一点,除非必要不要结束线程,让它自然关闭FreeOnTerminate := true,否则很容易内存溢出