2009-09-25 93 views
1

我已經做了相當數量的搜索,但找不到關於此主題的任何內容。使用線程管理連接池的最佳方式是什麼?

我們有做數據處理的telnet服務器。登錄telnet有開銷(時間),所以我想要做的是有一個服務(WCF),它產生n個連接,充當應用程序/請求和服務器之間的代理。

所有這些連接都成功地登錄到服務器並準備發送命令。應用程序可以發送命令到這個服務發送到服務器,然後從這個服務接收數據。如果有更多請求比連接數量多,那麼這些請求將排隊。

我知道如何使用線程和事件,但我怎麼知道哪個請求返回數據? LEt認爲有9個活動請求正在運行,我怎麼知道返回的數據屬於哪個請求?

我將不勝感激任何指針,可導致我到正確的方向。

我使用C#

回答

1

而不是簡單地寫一個WCF服務編程,我會考慮寫一個WCF Telnet的是內部處理池結合。編寫一個綁定來處理你的傳輸和通道級別的東西,比如連接池,是解決WCF問題的合適方法。您將以這種方式獲得更大的靈活性,特別是可以編寫多個服務來重用您的Telnet綁定。

我可以去到很多細節,但它很可能會作出一個非常大的答案。相反,我會提供以下鏈接,並通過電子郵件提供您需要的任何其他幫助。當WCF被濫用時,WCF可能會變得毛茸茸並且複雜,但當它被正確使用時,它可以是一個非常優雅和強大的通信工具。

0

如果你沒有反感企業服務,您可以創建一個組件來處理通信到你可以配置爲使用企業服務對象池的telnet服務器。

這將處理分鐘,池中的對象以及對象創建超時的最大數量,也將排隊你的請求。唯一「棘手」的部分是確保你的telnet連接在你的池中保持有效。

另外,如果你想保持更緊密地排列與WCF,那麼你可以在this Pooling Sample證明實現自己的WCF池。

相關問題