码迷,mamicode.com
首页 > 其他好文 > 详细

BeginInvoke与Invoke的区别

时间:2015-04-14 00:37:07      阅读:129      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!