大家都知道,在Silverlight中,所有wcf服務調用都是異步的。但是,我們可以說什麼要求的時間?對於下面的代碼,服務器在「Hello B」之前是否會收到「Hello A」?Silverlight中wcf調用的時間
ServiceClient proxy = new ServiceClient();
ServiceClient proxy2 = new ServiceClient();
proxy.SayHelloAsync(「Hello A」);
proxy2.SayHelloAsync(「Hello B」);
我反覆運行代碼,服務器總是先收到「Hello A」。它只是運氣好嗎?
我同意你對WaitHandle的分析,它需要更多的關心。在很多情況下,你可能是正確的,但是如果兩個調用可以並行運行,那麼鏈接可能會更好。在專門分配的後臺線程上使用幾個等待句柄(即沒有別的關鍵待辦事項的線程)應該相當簡單。 – AnthonyWJones 2010-01-12 20:49:57
這也是我的理解,但我也知道Silverlight偶爾會通過將WCF調用封送到UI線程中來做一些奇怪的事情。最後一次嘗試通過使用帶有ManualResetEvent的僞同步模式來簡化我的代碼時,我無法使其可靠工作:調用將永遠不會返回。但我不記得我正在採取的確切方法,而對線程問題了解比我更多的人可能會有更好的運氣:-)。 – 2010-01-12 22:07:48