新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
WCF服務(wù)異步調(diào)用不同實現(xiàn)方式講解
我們在使用WCF服務(wù)調(diào)用的時候,可以使用多種方法來實現(xiàn),比如今天為大家介紹的是在SilverLight下使用WebRequest來對WCF服務(wù)進行異步調(diào)用。那么,就讓我們一起來看看WCF服務(wù)異步調(diào)用的相關(guān)內(nèi)容。

創(chuàng)新互聯(lián)建站專業(yè)IDC數(shù)據(jù)服務(wù)器托管提供商,專業(yè)提供成都服務(wù)器托管,服務(wù)器租用,成都移動機房托管,成都移動機房托管,成都多線服務(wù)器托管等服務(wù)器托管服務(wù)。
UI線程如果被阻塞的話,是不能得到異步響應(yīng)結(jié)果的。關(guān)于這個問題,有一個簡單的通過WebRequest來進行WCF服務(wù)異步調(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服務(wù)異步調(diào)用實現(xiàn)中,一定要同步得到響應(yīng)的話,可以通過SilverLight調(diào)用Javascript實現(xiàn),在Javascript中使用XMLHttpRequest類即可。
名稱欄目:WCF服務(wù)異步調(diào)用不同實現(xiàn)方式講解
當(dāng)前鏈接:http://m.5511xx.com/article/cdshehi.html


咨詢
建站咨詢
