关于webservice的异步调用简单实例

关于webservice的异步调用简单实例
无论在任何情况下,被调用方的代码无论是被异步调用还是同步调用的情况下,被调用方的代码都是一样的,

下面,我们就以异步调用一个webservice 为例作说明。
这是一个webservice

 1<webmethod(description:="试验")> _   
 2Public Function delCurTable(ByVal tbName As String) As Boolean   
 3Try   
 4Return True   
 5Catch ex As Exception   
 6Return False   
 7End Try   
 8End Function 
 9
10关于这个webservice的同步调用方法,我就不做说明了   
11异步调用:   
12Private a As vbwebservice.DataManage'定义一个webservice变量   
13Dim ar As IAsyncResult   
14public sub Callback1(byval ar as IAsyncResult)   
15''这里可以不写任何代码   
16'这里的代码在调用方运行结束后,开始运行   
17end sub 
18
19#region "异步调用"   
20private sub btnStart_Click()   
21dim cb as asyncallback=new asyncallback(address(me.callback1))   
22ar=a.begindelcurtable("zdf",cb,a)   
23end sub 
24
25  
26private sub btnEnd_Click()   
27if ar is nothing then   
28exit sub   
29end if   
30if ar.IsCompleted Then   
31dim m as boolean=a.enddelcurtable(ar)   
32messagebox.show(m.tostring)   
33end if   
34end sub   
35#end region   
36注意:“返回异步调用的结果一次只能调用一次,如果想再执行一遍,就必须重新执行一遍begin的方法”   
37以上是vb.net的用法,下面是c#的用法   
38CWebService.DataManage a;   
39System.IAsyncResult ar;   
40private void Form1_Load(object sender, System.EventArgs e)   
41{   
42a=new CWebService.DataManage();   
43} 
44
45  
46public void CallBack1(System.IAsyncResult ar)   
47{   
48} 
49
50private void btnStart_Click(object sender, System.EventArgs e)   
51{   
52System.AsyncCallback cb=new AsyncCallback(this.CallBack1);   
53ar=a.BegindelCurTable("zhang",cb,a);   
54} 
55
56private void btnEnd_Click(object sender, System.EventArgs e)   
57{   
58if(ar==null)   
59{   
60MessageBox.Show("null");   
61return ;   
62}   
63if(ar.IsCompleted )   
64{   
65bool m=a.EnddelCurTable(ar);   
66MessageBox.Show(m.ToString());   
67}   
68else   
69{   
70MessageBox.Show("为完成");   
71}   
72}</webmethod(description:="试验")>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus