码迷,mamicode.com
首页 > 编程语言 > 详细

c#运用this.invoke() 在多线程时对UI进行修改

时间:2020-10-30 12:44:11      阅读:17      评论:0      收藏:0      [点我收藏+]

标签:资源   nop   bsp   异步执行   camera   his   修改   包括   ble   

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线程。

c#运用this.invoke() 在多线程时对UI进行修改

标签:资源   nop   bsp   异步执行   camera   his   修改   包括   ble   

原文地址:https://www.cnblogs.com/xihong2014/p/13898991.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!