`
tiandirensoon
  • 浏览: 597121 次
文章分类
社区版块
存档分类
最新评论

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

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

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

<WebMethod(Description:="试验")>_
PublicFunctiondelCurTable(ByValtbNameAsString)AsBoolean
Try
ReturnTrue
CatchexAsException
ReturnFalse
EndTry
EndFunction

关于这个webservice的同步调用方法,我就不做说明了
异步调用:
PrivateaAsvbwebservice.DataManage'定义一个webservice变量
DimarAsIAsyncResult
publicsubCallback1(byvalarasIAsyncResult)
''这里可以不写任何代码
'这里的代码在调用方运行结束后,开始运行
endsub

#region"异步调用"
privatesubbtnStart_Click()
dimcbasasyncallback=newasyncallback(address(me.callback1))
ar=a.begindelcurtable("zdf",cb,a)
endsub


privatesubbtnEnd_Click()
ifarisnothingthen
exitsub
endif
ifar.IsCompletedThen
dimmasboolean=a.enddelcurtable(ar)
messagebox.show(m.tostring)
endif
endsub
#endregion
注意:“返回异步调用的结果一次只能调用一次,如果想再执行一遍,就必须重新执行一遍begin的方法”
以上是vb.net的用法,下面是c#的用法
CWebService.DataManagea;
System.IAsyncResultar;
privatevoidForm1_Load(objectsender,System.EventArgse)
{
a=newCWebService.DataManage();
}


publicvoidCallBack1(System.IAsyncResultar)
{
}

privatevoidbtnStart_Click(objectsender,System.EventArgse)
{
System.AsyncCallbackcb=newAsyncCallback(this.CallBack1);
ar=a.BegindelCurTable("zhang",cb,a);
}

privatevoidbtnEnd_Click(objectsender,System.EventArgse)
{
if(ar==null)
{
MessageBox.Show("null");
return;
}
if(ar.IsCompleted)
{
boolm=a.EnddelCurTable(ar);
MessageBox.Show(m.ToString());
}
else
{
MessageBox.Show("为完成");
}
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics