我正在從WCF服務向Silverlight客戶端提取數據(圖像,200-400kb),並注意到Silverlight每次到達此類消息時會停止一小部分秒。這並不是真的嚴重,但動畫停頓了一段時間,整個用戶體驗都被破壞了。通過WCF和WebClient下載圖片
提問時間:
1)你認爲這將是有益的,而不是使用Web客戶端?
2)Silverlight中的「正常」WCF客戶端(通過「正常」我的意思是事件驅動的場景)反序列化主(調用)線程或背景中的數據合約? 3)您是否認爲從XML中的數據契約中反序列化二進制對象所需的開銷(+由於Base64 XML編碼而產生更大的數據大小)比服務器的額外往返更大/更小(在這種情況下,數據契約只會包含圖像的URL,比我可以使用WebClient獲取它 - 因此另一次旅行)?
4)是否可以在後臺線程(而不是UI線程)中從byte []數組創建Image?
任何幫助,意見,建議非常感謝。
感謝,
卡羅爾
PS:我不能使用的DeepZoom因爲業務需求真的不匹配的DeepZoom場景。
感謝史蒂夫,最後我用REST協議創建了第二個終點,因此我可以將圖像作爲二進制從相同的服務返回,並通過WebClient在Silverlight中使用它。 – 2009-05-01 23:54:43
更新:我做了一些性能測試。如果有人感興趣:通過REST的原始二進制數據比DataContract的序列化相同的數據快2.5倍。 – 2009-05-02 02:49:26