WebService异步方法问题

时间:2009-08-23 14:08:55

标签: c#

在为我的项目使用web服务的想法中,我注意到为我自动创建了几个属性(方法/事件)。我可以看到Completed事件的目的,但我不确定Async方法将在何处使用。

webmethod声明:

    [WebMethod]
    public string HelloBrad()
    {
        return "Hello Brad";
    }

代码隐藏中的服务消费

  localhost.Service1 service = new localhost.Service1();;
  service.HelloBradAsync
  service.HelloBradCompleted
  service.HelloBrad

有人可以解释一下HelloBradAsync方法的用法。

由于

1 个答案:

答案 0 :(得分:3)

异步方法允许您的代码在服务器处理消息时继续执行。使用正常的service.HelloBrad代码,线程将阻塞,直到webservices返回响应。

相反,如果您调用HelloBradAsync,它会立即转到您的下一行代码。服务器完成后,它将在“HelloBradCompleted”事件内响应。

这样Web服务在执行时不会阻塞您的主线程,这绝对是正常的业务方式。它可能需要改变您的编程范例,但您会发现其好处超过了成本。