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

    就是一个是同步的一个是异步的,也就是一个需要等待一个不需要等待

//这个输出123private void button1_Click(object sender, RoutedEventArgs e) {textblock.Text += "1";this.Dispatcher.Invoke(new InvokeDelegate(Test));textblock.Text += "3";}private void Test() {textblock.Text += "2";}private delegate void InvokeDelegate();//这个输出132private void button1_Click(object sender, RoutedEventArgs e) {textblock.Text += "1";this.Dispatcher.BeginInvoke(new InvokeDelegate(Test));textblock.Text += "3";}private void Test() {textblock.Text += "2";}

Invoke是线程中比较重要的一个东西,在多线程的编程中,平常在更新界面的时候,可以用UI线程去做来减轻工作线程的负担。比如下面这样放在线程中:

private void button1_Click(object sender, RoutedEventArgs e) {Thread invokeThread = new Thread(new ThreadStart(Method));invokeThread.Start();//...运算代码
        }private void Method(){this.Dispatcher.BeginInvoke(new InvokeDelegate(Test));}private void Test() {textblock.Text += "123";}private delegate void InvokeDelegate();

简单写法如下:

private void button_Click(object sender, RoutedEventArgs e) {this.Dispatcher.BeginInvoke(new Action(() => { this.textblock.Text += "123"; }));}

转载于:https://www.cnblogs.com/zyj649261718/p/8317254.html

WPF Invoke与BeginInvoke的区别相关推荐

  1. C#:invoke 与 BeginInvoke使用区别

    invoke和begininvoke 区别 一直对invoke和begininvoke的使用和概念比较混乱,这两天看了些资料,对这两个的用法和原理有了些新的认识和理解. 首先说下,invoke和beg ...

  2. C#中Invoke 和 BeginInvoke 的区别

    Invoke 和 BeginInvoke 的真正涵义 .在多线程中如何调用Winform Control.Invoke 方法 (Delegate) :在拥有此控件的基础窗口句柄的线程上执行指定的委托. ...

  3. C#中的delegate的 Invoke 、BeginInvoke的区别

    事情是这样的,我看到了以下的一段代码,才引发了对这个问题的思考.代码如下: 1 using UnityEngine; 2 using UnityEditor; 3 4 public class Cus ...

  4. C#——invoke和begininvoke 区别

    invoke和begininvoke 区别 一直对invoke和begininvoke的使用和概念比较混乱,这两天看了些资料,对这两个的用法和原理有了些新的认识和理解. 首先说下,invoke和beg ...

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

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

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

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

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

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

  8. C#的Invoke与BeginInvoke区别

    [分析]浅谈C#中Control的Invoke与BeginInvoke在主副线程中的执行顺序和区别(SamWang) 今天无意中看到有关Invoke和BeginInvoke的一些资料,不太清楚它们之间 ...

  9. c# Invoke和BeginInvoke 区别

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

最新文章

  1. html5搜索框美化,CSS美化的漂亮搜索框
  2. JAVA-最常用的A题语法
  3. pmp每日三题(2022年3月14日)
  4. 【MS Word技巧】word如何批量把括号内字体变绿?
  5. 文件字符输入流的使用 FileReader java
  6. DesiredCapabilities内容详解(摘)
  7. 如何修改layui数据表格绑定的开关事件?
  8. 每周荐书:Swift、Java、React(评论送书)
  9. 精通Linux Unix Shell编程电子书免费分享
  10. 自从硬派网倒闭后,就没有什么好看的IT硬件网站了
  11. Android Studio中AndroidManifest.xml文件中application标签
  12. 手机怎么录游戏视频 手机屏幕录制的方法
  13. 微博音视频下载与合并
  14. NCRE公共基础知识(一) 计算机系统
  15. Golang iota踩坑
  16. Connect to maven.google.com:443 [maven.google.com] failed: Connection timed out: connect 解决办法
  17. 虹科案例 | 空调故障无冷气,且没有故障码
  18. 数组指针应用(输入字母 查找以此字母开头的单词)
  19. 抓包和网络镜像 华为交换机S2300
  20. 多分类学习与类别不均衡

热门文章

  1. linux arm9开发环境,ARM9开发板Qt环境的搭建
  2. js基础代码大全_关于前端业务代码的一些见解
  3. 解决远程主机不能cv问题
  4. oracle 删除xml记录,Oracle之xml的增删改查操作
  5. python100例图案_python100例 21-30
  6. 表情识别(一)--传统方法概述
  7. 图像融合(四)-- 对比度金字塔
  8. 鸿蒙面向开发者语言,华为正式发布鸿蒙OS 面向全球开发者开源!
  9. 0基础python入门书籍 excel_零基础学Python3(23):Excel 基础操作(上)
  10. yum repolist命令