日期:2014-05-17  浏览次数:20812 次

(多线程的调用)下面这句可以讲解下吗
this.BeginInvoke(new Action<EnumProgessState, string>(progress), EnumProgessState.OnQryPositionDetail, pRspInfo.ErrorMsg);

void progress(EnumProgessState _state, string _msg)
{------省}

------解决方案--------------------
BeginInvoke是在创建当前控件的线程上异步执行委托,progress方法中要访问控件,但是progress方法所在的线程和创建控件的线程不是同一个,直接访问会报错,所以通过BeginInvoke加委托就可以让创建当前控件的线程执行这个方法。对应的还有个Invoke方法,它是同步的,也就是要等执行完才返回,而BeginInvoke立即返回。不知道我说清楚没?