再说invoke和begininvoke
关于这两个方法,很多人容易在多线程的情况下使用的并不正确,所以我也再次说一下我的理解。
首先两者一个是异步的一个是同步的,这个大家应该都知道。
其次这两个方法运行的时候实际上还是运行在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相关推荐
- (转)Invoke and BeginInvoke
Invoke and BeginInvoke 在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate,至于委托的本质请参考我的另一随笔:对.net事件的看法. 一.为什么 ...
- SQL Server安装问题 mof 编译器无法连接到wmi服务器 不能在控件上调用Invoke或 BeginInvoke...
谷歌后问题解决方法收集 方法1. 出现错误后,找到注册表的 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Man ...
- 为什么Control类提供了Invoke和BeginInvoke机制
在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate,至于委托的本质请参考我的另一随笔:对.net事件的看法. 一.为什么Control类提供了Invoke和Begin ...
- 委托的Invoke 和 BeginInvoke 与Control的Invoke和BeginInvoke(转-因为写得很好)
原文地址:http://www.cnblogs.com/worldreason/archive/2008/06/09/1216127.html Invoke and BeginInvoke Invok ...
- c# Invoke和BeginInvoke 区别
转自http://www.cnblogs.com/c2303191/articles/826571.html Control.Invoke 方法 (Delegate) :在拥有此控件的基础窗口句柄的线 ...
- c# Invoke和BeginInvoke 区别详解
Control.Invoke 方法 (Delegate):在拥有此控件的基础窗口句柄的线程上执行指定的委托. Control.BeginInvoke 方法 (Delegate) :在创建控件的基础句柄 ...
- C# 多线程修改控件时遇到:创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke
一般在多线程调用UI控件时,涉及到跨线程修改UI,需要使用委托,比如如下: this.Invoke((MethodInvoker)delegate{btnRefresh.Enabled = true; ...
- C#中Invoke 和 BeginInvoke的涵义和区别
BeginInvoke 方法真的是新开一个线程进行异步调用吗? 参考以下代码: public delegate void treeinvoke(); private void UpdateTreeVi ...
- 【分析】浅谈C#中Control的Invoke与BeginInvoke在主副线程中的执行顺序和区别(SamWang)
今天无意中看到有关Invoke和BeginInvoke的一些资料,不太清楚它们之间的区别.所以花了点时间研究了下. 据msdn中介绍,它们最大的区别就是BeginInvoke属于异步执行的. Cont ...
- 浅谈C#中Control的Invoke与BeginInvoke在主副线程中的执行顺序和区别
今天无意中看到有关Invoke和BeginInvoke的一些资料,不太清楚它们之间的区别.所以花了点时间研究了下. 据msdn中介绍,它们最大的区别就是BeginInvoke属于异步执行的. Cont ...
最新文章
- Learn OpenGL (十):材质
- 裸辞后,从Android转战Web前端的学习以及求职之路
- 7-4 jmu-Java-06异常-04-自定义异常(综合) (15 分)
- 线程入门-使用Thread类
- 学车比学计算机简单,帅哥自述:学车比上班还要累
- MFC序列化(serial)简单例子
- 【琥珀】带你用好CLIP!视觉-语言表征学习新进展
- SqlBulkCopy类进行大数据(一万条以上)插入测试
- 苹果一半员工未接受4年制大学教育 库克却对此感到骄傲
- 【python】集合的定义与操作
- python 图片数据增强_数据增强之批量修改图像尺寸大小(附Python实现)
- UDT中的epoll
- CCNP系列之九-----帧中继子接口试验配置
- 成为java高手的八大条件
- C语言--大小端转换
- 怎么做平面设计海报——黎乙丙
- 安徽自招大专计算机,2021年安徽自主招生学校名单有哪些,安徽自主招生大专院校名单【详细版】...
- win10系统计算机如何分盘,windows10怎么分盘
- 手机QQ聊天记录备份
- 鸿蒙轻量级数据存储Preferences
热门文章
- mysql循环遍历获取_MySQL 全表遍历
- h5文字垂直居中_CSS居中的常用方式以及优缺点
- html引vue怎么实现国际化,Vue项目中Vue-i18n和element-ui国际化开发实现过程_唇印_前端开发者...
- 【BZOJ4602】齿轮,带权并查集
- 【JSOI2007】【BZOJ1029】【codevs2913】建筑抢修,贪心与堆
- 属格-my father's car和whose_32
- python读取数据库绘图_获取博客积分排名,存入数据库,读取数据进行绘图(python,selenium,matplotlib)...
- 2017.9.21 道路修建(noi2011) 思考记录
- logon oracle 密码 用户名_PLSQL自动登录,记住用户名密码日常使用技巧
- 【OpenStack】【Rocky】安装Rocky之前的先决条件包