关于这两个方法,很多人容易在多线程的情况下使用的并不正确,所以我也再次说一下我的理解。

首先两者一个是异步的一个是同步的,这个大家应该都知道。

其次这两个方法运行的时候实际上还是运行在UI线程上的,所以你可以在这两个方法运行的delegate方法中加个sleep,你就可以看到界面假死。

最难理解的就是这个所谓的同步和异步,其实主要是针对我们在通过new Thread()的ThreadStart里调用invoke和begininvoke来说的,在这种情况下begininvoke是在UI线程,显然和你这个线程是异步的了,但如果你就直接在UI线程调用这两个方法,那就没什么必要了,也可以说这种调用方法是错误的。

下边可以给一个简单的我认为比较正确的调用示例:

void static main()

{

Thread trd = new Thread(delegate(){test();});

trd .start();

}

private static void test()

{

//做些费时间的事情

control.begininvoke(....);

}

再说invoke和begininvoke相关推荐

  1. (转)Invoke and BeginInvoke

    Invoke and BeginInvoke 在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate,至于委托的本质请参考我的另一随笔:对.net事件的看法. 一.为什么 ...

  2. SQL Server安装问题 mof 编译器无法连接到wmi服务器 不能在控件上调用Invoke或 BeginInvoke...

    谷歌后问题解决方法收集  方法1. 出现错误后,找到注册表的 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Man ...

  3. 为什么Control类提供了Invoke和BeginInvoke机制

    在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate,至于委托的本质请参考我的另一随笔:对.net事件的看法. 一.为什么Control类提供了Invoke和Begin ...

  4. 委托的Invoke 和 BeginInvoke 与Control的Invoke和BeginInvoke(转-因为写得很好)

    原文地址:http://www.cnblogs.com/worldreason/archive/2008/06/09/1216127.html Invoke and BeginInvoke Invok ...

  5. c# Invoke和BeginInvoke 区别

    转自http://www.cnblogs.com/c2303191/articles/826571.html Control.Invoke 方法 (Delegate) :在拥有此控件的基础窗口句柄的线 ...

  6. c# Invoke和BeginInvoke 区别详解

    Control.Invoke 方法 (Delegate):在拥有此控件的基础窗口句柄的线程上执行指定的委托. Control.BeginInvoke 方法 (Delegate) :在创建控件的基础句柄 ...

  7. C# 多线程修改控件时遇到:创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke

    一般在多线程调用UI控件时,涉及到跨线程修改UI,需要使用委托,比如如下: this.Invoke((MethodInvoker)delegate{btnRefresh.Enabled = true; ...

  8. C#中Invoke 和 BeginInvoke的涵义和区别

    BeginInvoke 方法真的是新开一个线程进行异步调用吗? 参考以下代码: public delegate void treeinvoke(); private void UpdateTreeVi ...

  9. 【分析】浅谈C#中Control的Invoke与BeginInvoke在主副线程中的执行顺序和区别(SamWang)

    今天无意中看到有关Invoke和BeginInvoke的一些资料,不太清楚它们之间的区别.所以花了点时间研究了下. 据msdn中介绍,它们最大的区别就是BeginInvoke属于异步执行的. Cont ...

  10. 浅谈C#中Control的Invoke与BeginInvoke在主副线程中的执行顺序和区别

    今天无意中看到有关Invoke和BeginInvoke的一些资料,不太清楚它们之间的区别.所以花了点时间研究了下. 据msdn中介绍,它们最大的区别就是BeginInvoke属于异步执行的. Cont ...

最新文章

  1. Learn OpenGL (十):材质
  2. 裸辞后,从Android转战Web前端的学习以及求职之路
  3. 7-4 jmu-Java-06异常-04-自定义异常(综合) (15 分)
  4. 线程入门-使用Thread类
  5. 学车比学计算机简单,帅哥自述:学车比上班还要累
  6. MFC序列化(serial)简单例子
  7. 【琥珀】带你用好CLIP!视觉-语言表征学习新进展
  8. SqlBulkCopy类进行大数据(一万条以上)插入测试
  9. 苹果一半员工未接受4年制大学教育 库克却对此感到骄傲
  10. 【python】集合的定义与操作
  11. python 图片数据增强_数据增强之批量修改图像尺寸大小(附Python实现)
  12. UDT中的epoll
  13. CCNP系列之九-----帧中继子接口试验配置
  14. 成为java高手的八大条件
  15. C语言--大小端转换
  16. 怎么做平面设计海报——黎乙丙
  17. 安徽自招大专计算机,2021年安徽自主招生学校名单有哪些,安徽自主招生大专院校名单【详细版】...
  18. win10系统计算机如何分盘,windows10怎么分盘
  19. 手机QQ聊天记录备份
  20. 鸿蒙轻量级数据存储Preferences

热门文章

  1. mysql循环遍历获取_MySQL 全表遍历
  2. h5文字垂直居中_CSS居中的常用方式以及优缺点
  3. html引vue怎么实现国际化,Vue项目中Vue-i18n和element-ui国际化开发实现过程_唇印_前端开发者...
  4. 【BZOJ4602】齿轮,带权并查集
  5. 【JSOI2007】【BZOJ1029】【codevs2913】建筑抢修,贪心与堆
  6. 属格-my father's car和whose_32
  7. python读取数据库绘图_获取博客积分排名,存入数据库,读取数据进行绘图(python,selenium,matplotlib)...
  8. 2017.9.21 道路修建(noi2011) 思考记录
  9. logon oracle 密码 用户名_PLSQL自动登录,记住用户名密码日常使用技巧
  10. 【OpenStack】【Rocky】安装Rocky之前的先决条件包