C#利用Invoke和委托实现子线程更新UI(方式1)
UI布局如下
委托定义如下:
public delegate void SetMessageDelegate(string message);
From1的代码如下:
public partial class Form1 : Form {SetMessageDelegate setMessageDelegate = null;public Form1(){InitializeComponent();setMessageDelegate += SetMessageMethod; //注册委托回调Console.WriteLine("UI初始化线程Id:" + Thread.CurrentThread.ManagedThreadId);}public void SetMessageMethod(string message){Console.WriteLine("UI线程Id:" + Thread.CurrentThread.ManagedThreadId);this.textBox1.Text = message;}private void button1_ClickAsync(object sender, EventArgs e){Task.Run(() =>{Console.WriteLine("Task子线程Id:" + Thread.CurrentThread.ManagedThreadId);this.button1.Invoke(setMessageDelegate, "要传递的数据");//this.textBox1.Invoke(setMessageDelegate, "用textBox1的Invoke也行");}); }}public delegate void SetMessageDelegate(string message);
代码太简单了,不解释,注意观察输出的线程Id
运行结果如下:
C#利用Invoke和委托实现子线程更新UI(方式1)相关推荐
- Android中Activity、Window、ViewRootImpl与子线程更新UI
三者层级关系 1.Window Window是一个抽象类,唯一的实现类是PhoneWindow Window分为三种类型应用Window.子Window.系统Window.子Window无法独立存在必 ...
- Android子线程更新UI的方法总结
消息机制,对于Android开发者来说,应该是非常熟悉.对于处理有着大量交互的场景,采用消息机制,是再好不过了.有些特殊的场景,比如我们都知道,在Android开发中,子线程不能更新UI,而主线程又不 ...
- android 关于关于子线程更新UI的一些事
我们在看一些书或者博客时总是会看到一句话"android更新UI操作都是在Main主线程中,子线程中不能进行UI更新操作"那么,在子线程中真的不能进行UI的更新操作吗? //源码环 ...
- AndroidStudio子线程更新UI的几种方式
在安卓开发中,大部分情况下是不能在子线程直接更新UI的,只能在UI线程更新UI,其根本原因在于加入在一个Activity中有多个线程去更新UI,且没有加锁机制,可能会产生界面混乱的情况,但是如果都加锁 ...
- Android为什么不能在子线程更新UI
Android为什么不能在子线程更新UI Android为什么不能在子线程更新UI? 如果不做这个校验,是不是我也可以正常在子线程更新UI 但是google为什么要这样去设计呢 ViewRootImp ...
- 面试官问我:Andriod为什么不能在子线程更新UI?
记得看文章三部曲,点赞,评论,转发. 微信搜索[程序员小安]关注还在移动开发领域苟活的大龄程序员,"面试系列"文章将在公众号同步发布. 1.前言 看完<你为什么在现在的公司不 ...
- pyqt5 子线程更新ui
from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * import time''' 信号 ...
- 子线程更新UI,牵扯activity的启动过程
http://m.blog.csdn.net/article/details?id=43449123 点击打开链接
- 为什么我的子线程更新了 UI 没报错?借此,纠正一些Android 程序员的一个知识误区...
开门见山: 这个误区是:子线程不能更新 UI ,其应该分类讨论,而不是绝对的. 半小时前,我的 XRecyclerView 群里面,一位群友私聊我,问题是: 为什么我的子线程更新了 UI 没报错? 我 ...
最新文章
- NVIDIA Tensor Cores解析
- linux 中文输入法 xshall,Centos6.7下安装ibus中文输入法
- 带你玩转关键字Synchronized
- 【必看】如何向女朋友解释TCP的三次握手和四次挥手
- PHP做二次开发:本机安装ThinkCMF系统
- QSharedMemory共享内存实现进程间通讯(IPC)及禁止程序多开
- Qt文档阅读笔记-Q_PROPERTY解析及实例
- 热门wordpress主题Essentials汉化绿色版[更至v2.0.0]
- Pandas知识点-合并操作combine
- A. Regular Bracket Sequences
- java中递归删除_浅谈Java中使用递归方法删除文件
- object转换成Integer
- 基于密度聚类的DBSCAN和kmeans算法比较
- 网络机顶盒固件增删预装APP步骤
- 关于自动量程万用表和自动档位万用表使用
- Docker学习笔记1
- Java自动拆装箱总结
- 那些超好听却不红的歌
- 2022/1/12(自闭半日游)
- 详解python 利用 pyecharts 画地图(热力图)(世界地图,省市地图,区县地图)、动态流向图