Silverlight使用WCF调用svc方法的问题。

例如我在svc中写了个方法名为GetName()调用的时候是会有个GetNameAsync()的方法吧。可是我发现了个无比尿性的事情。在调用那个Async方法时他不会立即... 例如我在svc中写了个方法名为GetName()
调用的时候是会有个GetNameAsync()的方法吧。

可是我发现了个无比尿性的事情。
在调用那个Async方法时他不会立即执行GetName()方法并获取数据。而是继续执行下面的代码,等到这块代码执行完了,他才进入GetName()方法中。

这简直蛋疼的无可救药,我下面的代码马上就要使用GetName()的数据,中间不知道报了多少次未将对象引用到对象的实例。搞了半天才发现是这样的。求解有无更好的方法?
展开
 我来答
DogAndDot
2012-09-29
知道答主
回答量:35
采纳率:0%
帮助的人:12.6万
展开全部
Async表示是异步调用函数嘛,即是无等待执行,不管数据有没返回,直接执行下一行代码.与其相反的是同步,同步会按顺序执行代码.
与GetNameAsync()相对应返回执行函数是GetNameCompleted(),GetNameAsync是发送命令,GetNameCompleted是接收结果,两者配合使用.你将"继续执行下面的代码"代入这个函数内
写法如下:
public void Init_Load(){
...省略
client.GetNameCompleted += GetNameCompleted;
client.GetNameAsync();
}

private void GetNameCompleted(object sender ,GetNameCompletedEventArgs e){
if(e.Error == null){
//继续执行下面的代码
}
}
追问
我的那个方法是带参方法,没办法在初始化的时候就读取数据的。现在我就是在想如何让他获取完数据后再执行下一行的代码。 求教。不好意思发评论里面去了= =
浙江启扬智能科技有限公司
2023-06-12 广告
在嵌入式开发中,建立交叉开发环境可以提高开发效率和代码质量。以下是建立交叉开发环境的一些原因:1. 硬件资源限制:嵌入式系统的硬件资源,如处理器主频、内存容量等,相对于PC机来说较为有限。利用PC机进行开发可以利用更快的硬件设备,提高开发效... 点击进入详情页
本回答由浙江启扬智能科技有限公司提供
merlindlut
2012-09-29 · TA获得超过422个赞
知道小有建树答主
回答量:945
采纳率:0%
帮助的人:408万
展开全部
sdf
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式