加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Asp.net中的异步Web服务

发布时间:2020-12-15 04:22:36 所属栏目:百科 来源:网络整理
导读:如何在asp.net中设置异步Web服务? 我想调用web服务将一些数据发布到数据库,但我不关心响应是否失败或成功. 我只能使用.net 2.0或3.5,它可以是vb或c#. 解决方法 在visual studio中创建服务引用时,单击“高级…”按钮并选中“生成异步操作”.然后,您可以选择
如何在asp.net中设置异步Web服务?

我想调用web服务将一些数据发布到数据库,但我不关心响应是否失败或成功.

我只能使用.net 2.0或3.5,它可以是vb或c#.

解决方法

在visual studio中创建服务引用时,单击“高级…”按钮并选中“生成异步操作”.然后,您可以选择对Web服务进行异步调用.

以下是对公共Web服务的同步和同一异步调用的示例.

// http://wsf.cdyne.com/WeatherWS/Weather.asmx?wsdl
using(var wf = new WeatherForecasts.WeatherSoapClient())
{
    // example synchronous call
    wf.GetCityForecastByZIP("20850");

    // example asynchronous call
    wf.BeginGetCityForecastByZIP("20850",result => wf.EndGetCityForecastByZIP(result),null);
}

调用BeginXxx并不对结果做任何事情可能很诱人,因为你不关心它.你实际上会泄漏资源.重要的是每个BeginXxx呼叫都与相应的EndXxx呼叫匹配.

即使你有一个调用EndXxx的回调,这是在线程池线程上触发的,并且一旦BeginXxx调用完成,它就可以自由完成调用BeginXxx的原始线程(它不等待响应).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读