您的位置:首页 > 其它

Web服务异步调用实训

2008-10-13 10:20 344 查看
本文是一篇实训文章,例子简单,希望对初学者有所启示.

以webservice中经典的Helloworld为例子:

1.新建一个网站,选择ASP.NET web 服务,选择语言为C#,打开App_Code下的Service.cs文件,其他的都不变,只是在输出前添加一个System.Threading.Thread.Sleep(5000)用来等待.

[WebMethod]

public string HelloWorld()

{

System.Threading.Thread.Sleep(5000);

return "Hello World";

}

2.运行WEB服务。

3.右击项目名,选择添加WEB引用,将运行的WEB服务的地址复制在要添加的地址栏中,引用名为localhost.添加引用.
我的地址是http://localhost:8224/Service.asmx,以下代码中自己替换下就可以了。



4.新建一个项目,选择windows应用程序,拖放一个按钮和一个文本框到FORM中,按钮该名为BtnSync.双击按钮,添加以下代码:

private void BtnSync_Click(object sender, EventArgs e)

{

localhost.Service svr = new localhost.Service();

svr.Url = "http://localhost:8224/Service.asmx";

svr.HelloWorldCompleted += new localhost.HelloWorldCompletedEventHandler(svr_HelloWorldCompleted);

svr.HelloWorldAsync();

}

private void svr_HelloWorldCompleted(object source,localhost.HelloWorldCompletedEventArgs e)

{

TextBox1.Text = e.Result.toString();

}

5.运行应用程序,查看效果吧,在点击了按钮5秒中之后,在文本框中才回出现Hello World.

总结

在一些注重服务调用速度,而不考虑回调的参数时,或者仅仅对返回值做日志处理的时候.异步调用会发挥很大的作用.异步调用还有其他的方法,个人觉得事件驱动的方式简单明了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: