首页 > 其他 > 详细

BeginInvoke与Invoke的区别

时间:2015-04-14 00:35:42      阅读:222      评论:0      收藏:0      [点我收藏+]

简单的讲就是

  1. BeginInvoke不需要等待方法运行完毕,就会继续执行下面的代码
  2. Invoke则必须等待Invoke中的代码运行完毕,才会继续执行下面的代码。

可以通过下面的项目测试上面所描述的观点。

在代码中的一段代码如下:

 1         /// <summary>
 2         /// Sub thread function
 3         /// </summary>
 4         private void ThreadFun()
 5         {
 6             MethodInvoker mi = new MethodInvoker(ShowProcessBar);
 7             
 8             this.BeginInvoke(mi);
 9             //this.Invoke(mi);
10 
11             MessageBox.Show("可以根据弹出的警告框先后次序判断BeginInvoke与Invoke的区别");
12 
13             Thread.Sleep(1000);//Sleep a while to show window
14 
15             bool blnIncreased = false;
16             object objReturn = null;
17             do
18             {
19                 Thread.Sleep(50);
20                 objReturn = this.Invoke(this.myIncrease,
21                     new object[] { 1 });
22                 blnIncreased = (bool)objReturn;
23             }
24             while (blnIncreased);
25         }

通过切换注释

BeginInvoke与Invoke的效果来体会两者的区别

 

项目下载地址:【点这里】

 

BeginInvoke与Invoke的区别

原文:http://www.cnblogs.com/poissonnotes/p/4423677.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!