首页 新闻 会员 周边

silverlight 异步调用 + 返回值的问题

0
悬赏园豆:80 [待解决问题]

由于方法需要重用,所以才写在一个类里!

我的按钮事件调用一个类里的有返回值的方法
而类里的方法由于是异步操作,得不到返回值,
放到异步方法里,我的按钮事件又无法接受到返回值.

这个情况该咋处理?

===按钮事件===========
private void b提交_ItemClick(object sender, DevExpress.Xpf.Bars.ItemClickEventArgs e)
{
    bool zt;
    zt = Rev.YDSubmit(1022,36,"评审中");
    if (zt)
    {
      //得到返回值后座操作!!
     }
}
======类里的方法===========================
public bool YDSubmit(int ID, int LCID, string auditingState)
{
   InvokeOperation<string> 数据提交op = YD.Get_OneBySql("exec 数据提交 '" + ID + "','" + LCID  + "','" + auditingState +"'", Callback, null);

   //由于是异步,这时候得不到返回值
  if (数据提交op.Value.ToString() != "")
  {
     ZT = true;
     return ZT;
  }
}
====异步方法==========================
void Callback(InvokeOperation<string> loadOperation)
{
  //这里又无法做返回值,并且按钮事件也得不到该方法的返回值
  if (loadOperation.Value.ToString() != "")
  {
     ZT = true;
  }
  else
  {
     ZT = false;
  }
}

 

 

zfcomfort的主页 zfcomfort | 初学一级 | 园豆:122
提问于:2013-04-23 11:49
< >
分享
所有回答(2)
0
YDSubmit所在的类(假设叫做CLASSA),把ZT定义成public变量,然后
===按钮事件=========== private void b提交_ItemClick(object sender, DevExpress.Xpf.Bars.ItemClickEventArgs e) { //bool zt; Rev.YDSubmit(1022,36,"评审中"); while(true)//循环等待异步执行结果
{
if (CLASSA.zt) { //得到返回值后座操作!! }
break; }
}
tomsyc | 园豆:202 (菜鸟二级) | 2013-04-23 16:21
0

异步是不能return的,要是对委托熟悉的话,可以试试Action<>

on the way. | 园豆:212 (菜鸟二级) | 2013-04-25 08:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册