读书人

异步调用什么才能判断已经调用完成啊该

发布时间: 2012-04-28 11:49:53 作者: rapoo

异步调用什么才能判断已经调用完成啊??

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

读书人网 >asp.net

热点推荐