问题只有一个:DatasetMain是基类里面的对象。
为什么在异步执行完后,在回调函数里面访问不到DatasetMain,其实也访问不到窗体控件的值
但当回调函数执行完后,窗体控件值确有
MyDele是委托private void GetRemoter(object []a,object[]b)
{
//得到一个对象
Remoter remot = Remoter.GetInstance();

MyDele = new deleMethod(remot.RemotingInvoke); //委托方法 : 服务器端方法 BOSF0010C bosf0100 = new BOSF0010C();
AsyncCallback ac = new AsyncCallback(bosf0100.CallBack); //定义一个异步调用 IAsyncResult Iar = MyDele.BeginInvoke(a,out b,ac,null);

}public  void CallBack(IAsyncResult Iar)
{
if(Iar.IsCompleted  )
{

object[] result = null;
MyDele.EndInvoke(out result,Iar);
DataSet dsResult=(DataSet)result[2]; ExecCallBack((DataSet)result[2]);
}
}private void  ExecCallBack(DataSet ds)
{
try
{
if(ds != null || ds.Tables[0].Rows.Count != 0)
{
//下面这句出错,DatasetMain为空 (DatasetMain是这个WinForm基类的DataSet,在其他地方都是好的)
DataColumn[] arrPK = new DataColumn[]{DatasetMain.Tables[1].Columns[0],DatasetMain.Tables[1].Columns[1],DatasetMain.Tables[1].Columns[2]};

}

}
catch(Exception e)
{
MessageBox.Show("aa");
}
}