由于方法需要重用,所以才写在一个类里!
我的按钮事件调用一个类里的有返回值的方法
而类里的方法由于是异步操作,得不到返回值,
放到异步方法里,我的按钮事件又无法接受到返回值.
这个情况该咋处理?
===按钮事件=========== 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; } }
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; }
}
异步是不能return的,要是对委托熟悉的话,可以试试Action<>