摘要: 天无意中看到有关Invoke和BeginInvoke的一些资料,不太清楚它们之间的区别。所以花了点时间研究了下。 据msdn中介绍,它们最大的区别就是BeginInvoke属于异步执行的。Control.Invoke 方法 (Delegate) :在拥有此控件的基础窗口句柄的线程上执行指定的委托。Control.BeginInvoke 方法 (Delegate) :在创建控件的基础句柄所在线程上异步执行指定委托。msdn说明:控件上的大多数方法只能从创建控件的线程调用。 如果已经创建控件的句柄,则除了 InvokeRequired 属性以外,控件上还有四个可以从任何线程上安全调用的方法,它们. 阅读全文
posted @ 2013-11-23 23:00 SupremeGISER 阅读(512) 评论(1) 推荐(0) 编辑
摘要: Invoke是同步操作,也就是阻塞调用Invoke方法的线程,直到Invoke中的Delegate方法执行完之后,才会接着执行Invoke后面的代码。BeginInvoke是异步操作,不阻塞调用BeginInvoke方法的线程,继续执行BeginInvoke后面代码,等后面代码执行完后,才会执行BeginInvoke中的Delegate方法。 Invoke和BeginInvoke中的代理都是在控件的线程上即UI线程上执行。 阅读全文
posted @ 2013-11-23 22:57 SupremeGISER 阅读(143) 评论(0) 推荐(0) 编辑