WCF服務異步調(diào)用不同實現(xiàn)方式講解
作者:佚名
WCF服務異步調(diào)用在實際使用中有很多比較實用的技巧,需要我們在實踐中去積累。在這里就通過一段代碼來為大家詳細解讀這一操作技巧。
我們在使用WCF服務調(diào)用的時候,可以使用多種方法來實現(xiàn),比如今天為大家介紹的是在SilverLight下使用WebRequest來對WCF服務進行異步調(diào)用。那么,就讓我們一起來看看WCF服務異步調(diào)用的相關內(nèi)容。
UI線程如果被阻塞的話,是不能得到異步響應結果的。關于這個問題,有一個簡單的通過WebRequest來進行WCF服務異步調(diào)用的示例如下
- view plaincopy to clipboardprint?
- private void Button_Click(object sender, RoutedEventArgs e)
- {
- Uri endpoint = new Uri(urlstr);
- WebRequest request = WebRequest.Create(endpoint);
- request.BeginGetResponse(new AsyncCallback(ResponseReady), request);
- //“simulated” sync call : do something here to get response
- }
- void ResponseReady(IAsyncResult asyncResult)
- {
- WebRequest request = asyncResult.AsyncState as WebRequest;
- WebResponse response = request.EndGetResponse(asyncResult);
- using (Stream responseresponseStream = response.GetResponseStream())
- {
- StreamReader readStream = new StreamReader(responseStream,
Encoding.UTF8);- string response = readStream.ReadToEnd();
- }
- }
- private void Button_Click(object sender, RoutedEventArgs e)
- {
- Uri endpoint = new Uri(urlstr);
- WebRequest request = WebRequest.Create(endpoint);
- request.BeginGetResponse(new AsyncCallback(ResponseReady), request);
- //“simulated” sync call : do something here to get response
- }
- void ResponseReady(IAsyncResult asyncResult)
- {
- WebRequest request = asyncResult.AsyncState as WebRequest;
- WebResponse response = request.EndGetResponse(asyncResult);
- using (Stream responseresponseStream = response.GetResponseStream())
- {
- StreamReader readStream = new StreamReader(responseStream,
Encoding.UTF8);- string response = readStream.ReadToEnd();
- }
- }
另外:在WCF服務異步調(diào)用實現(xiàn)中,一定要同步得到響應的話,可以通過SilverLight調(diào)用Javascript實現(xiàn),在Javascript中使用XMLHttpRequest類即可。
【編輯推薦】
責任編輯:曹凱
來源:
CSDN





















