Web服务的异步方法

时间:2014-02-27 10:43:55

标签: c# asp.net web-services asynchronous

我想从Web服务调用一个方法。

我认为在同步模式下发生的事情是

var obj = new SalesOrder.CustServicesSoapClient(); obj.AddProduct(txtName.Text, txtColor.Text)

等待回复然后

ResSpan.innerHTML="foo";

但是在异步模式下:

var obj = new SalesOrder.CustServicesSoapClient();

obj.AddProductAsync(txtName.Text, txtColor.Text)

下一行独立于前一行

ResSpan.innerHTML="foo";

在void方法中实现的代码,因此该方法将一直等到“AddProductAsync”完成。

我想知道是否让我知道它是否正确理解了“异步方法”?

1 个答案:

答案 0 :(得分:1)

异步方法是异步的 - 这意味着它们不会阻塞主执行线程,并且会在某些时候并行发生。如果您需要等待async调用完成,则需要等待响应(如果使用async / await),请调用Wait()(如果使用Task<T>)等待它完成或访问Result属性(也隐含地调用Wait)。

Jon Skeet有一个非常棒的EduAsync系列文章,它将引导您完成从坚果到螺栓的异步。