2012-03-26 152 views
0

WCF服務可以調用其客戶端的方法來獲取或提供數據。問題是 - 客戶端上的哪個線程將處理該呼叫?一個新的?WCF客戶端線程

+0

你爲什麼不測試它。這應該讓你對WCF的運作有一個實際的見解。當然,理論上的解釋也不錯。 – CodingBarfield 2012-03-26 08:41:12

回答

0

通常客戶端會調用服務的代理,如果您不使用異步調用,該方法將會阻塞,結果當然會在同一個線程上。 - 另一方面在服務方面它有點取決於你的配置 - 通常WCF會產生任務或線程池線程,所以你不能說在哪個線程它將被處理到底...

+0

感謝您的回覆。 – 2012-03-26 09:13:45

+0

非常感謝你 - 但你不必評論每一個回覆 - 只需支持那些可以幫助你,並將你的最佳答案標記爲*答案 – Carsten 2012-03-26 09:31:28

0

我認爲這取決於無論該調用是同步還是異步。對於異步調用,例如在使用silverlight時,數據在單獨的線程中接收。

+0

謝謝你的回覆。 – 2012-03-26 09:13:59

0

如果您使用CallBackBehavior屬性並使用[CallbackBehavior(UseSynchronizationContext = false)]「裝飾」回調,則回調將在後臺線程上執行,而不是與最初進行服務調用的線程相同的線程這是默認行爲)。

+0

如果服務在沒有客戶端的初始調用的情況下自己調用它的客戶端(使用定時器或其他),會發生什麼? – 2012-03-26 09:07:15