异步调用什么才能判断已经调用完成啊??
- Assembly code
int a;private void OKButton_Click(object sender, RoutedEventArgs e) { client.selectcateidbynameAsync((combocate.SelectionBoxItem as Je_BusCate).CategoryName); client.selectcateidbynameCompleted += new EventHandler<selectcateidbynameCompletedEventArgs>(client_selectcateidbynameCompleted);MessageBox.Show(a.tostring());}void client_selectcateidbynameCompleted(object sender, selectcateidbynameCompletedEventArgs e) { if (e.Error == null) { a = e.Result; } }- Assembly code
int a;private void OKButton_Click(object sender, RoutedEventArgs e) { client.selectcateidbynameAsync((combocate.SelectionBoxItem as Je_BusCate).CategoryName); client.selectcateidbynameCompleted += new EventHandler<selectcateidbynameCompletedEventArgs>(client_selectcateidbynameCompleted);}void client_selectcateidbynameCompleted(object sender, selectcateidbynameCompletedEventArgs e) { if (e.Error == null) { a= e.Result; }MessageBox.Show(a.tostring()); }为什么这段代码,a的值会不一样啊,异步调用怎样才能判断完成??
[解决办法]
callback被调用了,说明你的异步完成了。
下面的第二种代码的a才是异步之后的值。
[解决办法]
在异步调用的方法最后,加委托通知主进程
[解决办法]
如果你的CategoryName是一样的话, e.Result就是一样的
你这个是WebService么?
无论WebService还是WCF,都是全部数据获取完才触发AsynComplete
不用怀疑,这是肯定的,因为这是微软帮你生成的代码
除非你自己写Socket