How about
 System.Threading.ThreadPool

解决方案 »

  1.   

    try
    {
    // 检查IP
    if(m_IPAddress.ToLower().IndexOf("all") > -1)
    {
    FTP_Listener = new TcpListener(IPAddress.Any,m_port);
    }
    else
    {
    FTP_Listener = new TcpListener(IPAddress.Parse(m_IPAddress),m_port);
    }
    // 开始监听
    FTP_Listener.Start();
                    
    while(true)                                         {
    if(m_SessionTable.Count <= m_MaxThreads)//m_MaxThreads为最大线程
    {
                      
               Socket clientSocket = FTP_Listener.AcceptSocket(); string sessionID = clientSocket.GetHashCode().ToString(); //写入日志
    _LogWriter logWriter = new _LogWriter(this.SessionLog);
    FTP_Session session = new FTP_Session(clientSocket,this,sessionID,logWriter);

    Thread clientThread = new Thread(new ThreadStart(session.StartProcessing));

    // 添加到会话列表
    AddSession(sessionID,session,logWriter); // Start proccessing
    clientThread.Start();
    }
    else
    {
    Thread.Sleep(100);
    }             }