www.1862.net > C#中invokE和BEgininvokE的区别

C#中invokE和BEgininvokE的区别

这两个方法最常用的场合是:多线程环境下更新控件。 例如,在WinForm程序中有一个后线程不断生成新的数字,而程序需要将这个数字在label1控件上显示,这是就需要调用Label控件的nvoke或者BeginInvok方法。 using System;using System.Drawing;us...

Invoke,需要等待委托的方法执行返回后才执行下面的代码 begininvoke不需要

区别在于Invoke是同步,BeginInvoke是异步。 打个比方(伪代码),后台线程中需要通知UI界面进行刷新 new Thread(){ /* 比如读取数据库的方法,比较耗时; var data = GetData(); 读取完成后通知UI线程, this.Invoke(data); //如果GetData方法是...

Invoke后,在主线程上执行,线程将等待返回结果,最后造成的结果就是时间过长,主界面或主线程假死。 BeginInvoke后,主线程将创建一个后台线程去执行,完了后,主线程继续往后执行,不会等待返回结果。用户需要得到返回结果的话,就必须调用End...

区别在于Invoke是同步,BeginInvoke是异步。 打个比方(伪代码),后台线程中需要通知UI界面进行刷新 new Thread() { /* 比如读取数据库的方法,比较耗时; var data = GetData(); 读取完成后通知UI线程, this.Invoke(data); //如果GetData方法是...

Invoke,需要等待委托的方法执行返回后才执行下面的代码begininvoke不需要

在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate。 一、为什么Control类提供了Invoke和BeginInvoke机制? 关于这个问题的最主要的原因已经是dotnet程序员众所周知的,我在此费点笔墨再次记录到自己的日志,以便日后提醒一下自己。...

class Program { delegate void test(); static void Main(string[] args) { test ts = new test(TestDelegate); ts.BeginInvoke(null,null); //使用到委托的beginInvoke方法 Console.WriteLine("hello"); } internal static void TestDelegate(...

1)相同点:Invoke与BeginInvoke方法都是.NET底层内置嵌入到delegate对象里的。 2)不同点:Invoke是显式调用委托链的方法,是一种间接形式,相对应的是直接调用的形式。直接调用形式经过C#编译后最终生成的IL仍然是采用间接形式,即delegateObj.Invo...

这个问题,你需要了解两个概念 什么是异步 什么是多线程 很多人都把这两个概念混淆了,你弄清这两个概念,你就明白invoke与beginInvoke的区别了

网站地图

All rights reserved Powered by www.1862.net

copyright ©right 2010-2021。
www.1862.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com