2011-10-22 44 views
1

我想當客戶端做新的wcfclient()時,WCF將創建新線程來處理來自該連接的所有調用? (我希望我是對的)。
因此,如果有不同的客戶端調用WCF(例如計算機A &計算機B),那麼WCF應該在不同的線程中處理每個客戶端。所以如果我想在這些線程之間共享一個對象,我該怎麼做呢?如何將不同的客戶端調用中的對象共享給WCF?

使用靜態對象?

是不同的客戶端調用WCF將它視爲不同的過程?或者是不同的線程?

回答

0

如果真的只有一個實例應該在所有請求之間共享,則需要使用singleton pattern。我相信有人會很快指出 - 使用這種模式通常不是一個好主意。您將遇到鎖定和可伸縮性問題。

但是,更好的辦法是以某種連續格式保存對象。如果可能的話,可以是文件或數據庫。然後,您可以在後續請求中重新實現該對象。

+0

是的,但寫入文件或數據庫需要更多的處理時間(序列化/反序列化等)。但我認爲不同的客戶的電話會創建不同的實例?糾正我,如果我錯了。 –

+0

呵呵,我剛纔查了一下是否有instanceContext做這樣的設置。但是如果我做PerSession呢?我如何分享內存對象? –

相關問題