Winform异步调用WebService
http://www.cnblogs.com/johnsmith/archive/2011/09/30/2196126.html 这里用Winform演示如何异步调用WebService。 首先在界面中拖入2个按纽,一个是同步,一个是异步,作为比较。新建立一个WebService,就用默认的HelloWorld方法来演示。 在Winform中添加对这个WebService的引用,button1(同步按纽)和button2(异步按纽)中的事件如下: private void button1_Click(object sender,EventArgs e) { localhost.Service1 service = new AsyncWebService.localhost.Service1(); string s = service.SayHello(); MessageBox.Show("Main do something..."); Thread.Sleep(3000); MessageBox.Show(Main done."); MessageBox.Show(s); } localhost.Service1 myService; void button2_Click(//初始化WebService myService = 给HelloWorld方法注册调用完成时执行的方法AsyncHelloWorldComplete myService.HelloWorldCompleted += new AsyncWebService.localhost.HelloWorldCompletedEventHandler(AsyncHelloWorldComplete); 开始异步调用 myService.HelloWorldAsync(); MessageBox.Show("); } 异步调用完成时执行的方法 void AsyncHelloWorldComplete(string s = e.Result.ToString(); MessageBox.Show(s); } 在第二个按纽myService中有关于HelloWorld的有这几个: 1.HelloWorld 这是同步执行的方法 2.HelloWorldAsync 这是开始异步执行的方法 3.HelloWorldCompleted 这是HelloWorld方法执行完成的事件,以上给这个事件注册了一个委托HelloWorldCompletedEventHandler,可以右击》GoToDefinition查看这个委托,这个委托有2个参数:object sender,HelloWorldCompletedEventArgs e,对于第二个参数e.Result就是需要异步执行的WebService方法(HelloWorld()方法)的返回结果。 如果是在ASP.NET中异步执行的话,需要在页面属性中设置可以异步:Async="true" 使用javascript,Ajax(异步)调用WebService的方法参考:使用ASP.NET AJAX异步调用Web Service和页面中的类方法 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |