zoukankan      html  css  js  c++  java
  • c#运用this.invoke() 在多线程时对UI进行修改

    Invoke()的作用是:在应用程序的主线程上执行指定的委托。一般应用:在辅助线程中修改UI线程( 主线程 )中对象的属性时,调用this.Invoke();

    /* 相机打开回调 */
    private void OnCameraOpen(object sender, EventArgs e)
    {
    this.Invoke(new Action(() =>
    {
    btnOpen.Enabled = false;
    btnClose.Enabled = true;
    }));
    }

    什么是进程呢?当一个程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的,线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。

    Control.Invoke 方法 (Delegate) :在拥有此控件的基础窗口句柄的线程上执行指定的委托。
    Control.BeginInvoke 方法 (Delegate) :在创建控件的基础句柄所在线程上异步执行指定委托。
    Control的Invoke和BeginInvoke的参数为delegate,委托的方法是在Control的线程上执行的,也就是我们平时所说的UI线程。

  • 相关阅读:
    字符串匹配算法
    密码学概述
    java实现的一道编程题
    java实现二进制的加法
    递归实现任意个字符的排列组合
    java中的断言
    java中的可变参
    SSH框架之Spring
    简单工厂模式
    String ,StringBuilder,StringBuffer
  • 原文地址:https://www.cnblogs.com/xihong2014/p/13898991.html
Copyright © 2011-2022 走看看