马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
归根到底,Java跨平台可以,但是要重新编写代码,否则还分什么J2EE/J2SE/J2ME呢!web|异步关于webservice的异步伐用复杂实例
不管在任何情形下,被挪用方的代码不管是被异步伐用仍是同步伐用的情形下,被挪用方的代码都是一样的,
上面,我们就以异步伐用一个webservice为例作申明。
这是一个webservice
_
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("为完成");
}
}
前天傍晚我发表了《Java的跨平台就是一句谎言。》,原本就是周末闲来无事,发表一篇略带争议性的博文让大家都来吵吵架,发表自己的看法,根本就没想着谁把谁打倒,一个行业或者是技术阵营是无法用短期口水仗打到对手的。 |