一點背景:如何回收由RPC運行時分配的線程句柄?
我正在使用RPC通過網絡進行通信的Windows程序。網絡連接不斷斷開。 RPC調用是同步的,但有多個客戶端線程同時運行。這些程序是對稱的 - 也就是說,雙方作爲客戶端和服務器,並運行完全相同的軟件。它使用標準的Windows API在C++中實現。
問題:
線程的句柄數通過隨時間進程瀏覽器增加的報道。看來線程是由RPC運行時處理請求產生的,但是線程回收時並不總是清理這些句柄。
這個數字會增加,特別是當有很多數據被傳輸時,或者當有很多呼叫同時發生時(這兩個因素同時出現,我不確定哪一個是相關的)。
一個活動服務器可以在幾天內建立幾千個未使用的線程句柄,而在任何時候都不會使用超過20個線程。
問題:
我能做些什麼,以保持句柄計數從安裝,因爲我相信它可以在客戶站點會導致穩定性問題?
[使用I/O完成端口在MFC中編寫Windows NT Server應用程序](http://msdn.microsoft.com/en-us/library/ms810436.aspx) – sergmat