看板 C_Sharp 關於我們 聯絡資訊
請問一下... 小弟寫了個 Socket Server (TCP) 的程式... 可是它卻無法把 TcpClient 的資源放掉... 我用 Profiler 看 TcpClient 的實體從來沒有減少過... NetworkStream 也是... 請各位大大幫幫看一下問題出在哪裡... 謝謝 ^^;; --- //這邊是宣告一個 TcpListener 並且收到一個連線就丟到 ThreadPool 裡面去工作 TcpListener m_TcpServer = new TcpListener(System.Net.IPAddress.Any, m_Port); m_TcpServer.Start(); while(true) { TcpClient AcceptClient = m_TcpServer.AcceptTcpClient(); ThreadPool.QueueUserWorkItem(new WaitCallback(HandleRequest), AcceptClient); } // 這裡是 ThreadPool 所呼叫的 HandleRequest 方法 private void HandleRequest(object Param) { using (TcpClient Client = (TcpClient)Param) { using (NetworkStream NetStr = Client.GetStream()) { // 中略 NetStr.Close(); } Client.Close(); } } --- 我目前想到有可能的原因就是在 while 裡宣告的 AcceptClient 沒有被 Dispose 但是它被丟進 ThreadPool 裡執行完應該要會自己 Dispose 啊... 不知有沒有大大有什麼指教... 謝謝各位先~~ __yroj -- KOKIA - ありがとう もしも もう いちど 假使再一次  あなた に あえる なら 遇見你的話  たった ひとこと 只有一句話  つたえたい 想告訴你 http://home.so-net.net.tw/kenyroj/share/arigatou.swf -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.248.5.97 ※ 編輯: KENyroj 來自: 60.248.5.97 (01/29 10:55) ※ 編輯: KENyroj 來自: 60.248.5.97 (01/29 10:56)