u can try TList(a array of pointer), a thread is signed by a pointer.

解决方案 »

  1.   

    已启动thread的管理是由serversocket管理的,不需要干预,而且非常稳定.
    上面的两个问题才是难点啊
      

  2.   

    不会吧,你在数量达到时在OnGetThread中将ServerThread设为Nil不行吗?
    Create肯定可以Override,Destroy我没试过,但可以用OnTerminate事件实现。
      

  3.   

    不行的,如果你把SErverThread设位Nil,系统会为你生成一个空线程,保证客户可以连上
    不信可以试试,我可以看看你的override的create的代码吗,好像并不是太好写
      

  4.   

    从TClientServerThread派生一个类,写他的Create和Destroy,OnGetThread时创建派生类
    响应OnThreadStart消息,线程开始运行时(即有客户端连接成功)发出此消息,
      

  5.   

    这个东东太难用,我是用自己写的一个SOCKET类来用的,方便多了
      

  6.   

    SAsura的方法可行。另外可以在该派生类的ClientExecute方法中检查当前联接数。如果超过上限则直接结束,即可控制同时连接数。
      

  7.   

    serversoket的属性中可以设置的。好象是ThreadCacheSize可以设置。
      

  8.   

        ThreadCacheSize属性
    指明最大能有最大能有多少个线程在等待新的用户连接。
    当Servertype是stThreadBlocking型时,每接受一个用户连接就要产生一个新的线程,为了提高系统的性能,ServerSocket会把已经断开的客户线程保留在缓冲区里。而不是释放他们。这样当一个新的请求到来的时候,就不必创建新的线程能减少所用的时间提高性能。
              ThreadCacheSize的值不能设的太小,否则许多时间会浪费在创建和释放线程上,当然也不能太大,否则,系统资源(如内存)浪费太大,也不利于提高系统性能。