首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

(多线程的调用)上面这句可以讲解上吗

2013-01-11 
(多线程的调用)下面这句可以讲解下吗this.BeginInvoke(new ActionEnumProgessState, string(progress),

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

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

热点排行