簡體   English   中英

響應式WCF客戶端的雙工回調或客戶端線程

[英]Duplex Callbacks or Client-Side Threading for Responsive WCF Clients

我有一個特定的服務,其中特定的功能需要比其他功能更長的時間,有時他們可能需要幾秒鍾才能返回。 為了防止在發生這種情況時阻止客戶端的UI,首選解決方案是什么:

  1. 使用雙工通道,只需使用回調即可在收到數據時更新UI。
  2. 使用單獨的線程來調用服務,只需使用請求 - 回復操作,然后在返回數據時更新ui線程。

哪種解決方案更好,特別是在互操作性受到青睞但不是絕對必要時,並且您認為哪種解決方案更快(更清潔)的實施和維護?

如果實現回調契約,則無需客戶端實現多線程代碼。 在使用.Net客戶端時,這可能不是一個顯着的優勢(因為VS將為您自動生成異步代理代碼),但在與其他平台/語言的客戶端合作時可能會有所幫助。

哪一個更干凈? 嗯,這取決於您是客戶端還是服務器開發人員。 如果,正如我懷疑你的情況,你是兩個,並且你可以只使用.Net作為客戶端和服務器,那么我現在可能想要避免回調。 如果你暗示服務呼叫需要45秒,那么我會說回叫合同,這確實是主觀的,但如果我要堅持下去,那么我會說如果響應時間超過5秒那么是時候轉向回調了。

您應該實現CallBackcontract

這是一個例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM