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.
总结
在一些注重服务调用速度,而不考虑回调的参数时,或者仅仅对返回值做日志处理的时候.异步调用会发挥很大的作用.异步调用还有其他的方法,个人觉得事件驱动的方式简单明了。
以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.
总结
在一些注重服务调用速度,而不考虑回调的参数时,或者仅仅对返回值做日志处理的时候.异步调用会发挥很大的作用.异步调用还有其他的方法,个人觉得事件驱动的方式简单明了。
相关文章推荐
- Anthem 异步调用web服务
- 开发自己的Web服务处理程序(以支持Ajax框架异步调用Web服务方法)
- Anthem 异步调用web服务
- 开发自己的Web服务处理程序(以支持Ajax框架异步调用Web服务方法)
- Ajax异步调用Web服务的例子
- Web服务下的异步调用
- ASP.NET异步调用Web服务
- XMLHttpRequest 对象异步调用web服务
- mvc路由引起异步调用web服务的问题
- XMLHttpRequest 对象异步调用web服务
- 如何:从 Web 服务客户端上进行异步调用
- 有关AJAX异步调用web服务中带参数的方法的心得
- Web服务的异步和同步调用
- SilverLight下用WebRequest异步调用WCF服务
- 异步调用Web服务
- 用ScriptManager实现Web服务的异步调用
- 调用异步服务时的超时处理
- C#调用Java端Web服务(CXF)时发生Integer参数类型无法传递的问题
- 使用 gSOAP 通过 HTTP 和 HTTPS 调用由 WSAD 创建的 J2EE Web 服务
- HttpClient异步调用WEB服务