C# InvokeRequired和Invoke

2023-10-26

一、简介

[WinForm]关于InvokeRequired与Invoke_Jlins的博客-CSDN博客_invokerequired

c#是禁止夸线程直接访问控件。InvokeRequired是为了解决这个问题而产生的,当一个控件的InvokeRequired属性值为真时,说明有一个创建它以外的线程想访问它。那么就需要使用Invoke或者BeginInvoke方法,通过一个委托把调用封送到控件所属的线程上执行。

InvokeRequired==true

 Windows 中的控件被绑定到特定的线程,没有线程安全性,因此从另外一个线程调用控件的方法就必须使用控件的一个invoke 方法来将调用封到适当的线程,这个做法保证了控件的安全。


        public  void  DoSomething()
        {
            if(this.InvokeRequired==true)
            {
                // InvokeRequired==true,说明是非创建线程在访问当前的UI控件
                this.BeginInvoke(new MethodInvoker(() => {

                  //  DoMywork();
                }));
            }
            else
            {
                //  DoMywork();
            }
        }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# InvokeRequired和Invoke 的相关文章

随机推荐

  • flask 初始化数据库报错KeyError: ‘migrate‘

    from flask sqlalchemy import SQLAlchemy from flask migrate import Migrate migrate def create app register all True kwarg
  • 重磅!2023年“HW”行动正式开启人员招募!

    对于每一个想从事信息安全行业的大学生而言 学习生涯中有一场必须参加的 行动 即 HW 行动 作为国家级网络安全演习 一年一度重大攻防演练项目 参加HW不仅能快速提升技术实操能力 同时可作为求职面试中的一个优秀闪光点 随着 云移大物智 的发展
  • SpringBoot解决AJAX跨域请求

    利用注解的方式解决AJAX请求跨域问题 一 第一种方式 1 编写一个支持跨域请求的 Configuration import org springframework context annotation Configuration impo
  • 一篇文章搞懂QML对象组件

    QML对象类型主要有五种 QML object types mermaid svg 934B7jbwalSq4Fyp font family trebuchet ms verdana arial sans serif font size 1
  • 《网络是怎样连接的》-户根勤

    适合对象 程序开发者 对网络感兴趣的朋友 会对网络设备 交换机 路由器 接入网 浏览器和服务器形成 一个系统的知识框架 需要相关资料的可私信我 结构和知识点 第一章 浏览器生成消息 第二章 用电信号传输TCP IP数据 协议栈和网卡 第三章
  • 数据库中动态列的几种设计思路

    在需求开发的时候 可能会碰到一种场景 在需求中 涉及的某具体业务中 属性是动态的 在条件允许的情况下 可以使用穷举法对所有可能情况进行属性分析 然后进行分类 最终可以形成一套可以解决的方案 这通常是理想情况 Leader和客户通常不会给这个
  • 浅述python中argsort()函数的用法

    由于想使用python用训练好的caffemodel来对很多图片进行批处理分类 学习过程中 碰到了argsort函数 因此去查了相关文献 也自己在python环境下进行了测试 大概了解了其相关的用处 为了怕自己后面又忘了 就写下来权当加深理
  • 合肥工业大学计算机组成原理课设-系统硬件综合设计

    作者简介 CSDN内容合伙人 信息安全专业在校大学生 系列专栏 信息安全本科生课设 系统硬件综合设计报告 新人博主 欢迎点赞收藏关注 会回访 舞台再大 你不上台 永远是个观众 平台再好 你不参与 永远是局外人 能力再大 你不行动 只能看别人
  • nvm 下载/删除/升级以及基本命令

    1 nvm 下载 安装路径不能有中文 下载地址 NVM下载 NVM中文网 卸载之前所有Node后安装nvm 直接运行nvm setup exe文件 选择安装nvm的安装路径 选择nodejs路径 5 打开cmd 输入nvm 检查是否安装成功
  • QT QWidgetAttribute

    目录 QT QWidgetAttribute 说明 参考链接 QT QWidgetAttribute 说明 Constant Value Description Qt WA AcceptDrops 78 Allows data from d
  • C语言中的可移植类型:stdint.h和inttypes.h

    stdint h和inttypes h两个头文件是C99里新增加的 以确保C语言的类型在各系统中功能相同 在stdint h头文件中 C语言为现有类型创建了更多类型名 如 int32 t表示32位有符号整数类型 即 在32位int型系统中
  • navicat配置远程链接mysql数据库(回顾)

    mysql 数据库在同一网关环境下 用navicat配置远程链接 省去命令操作
  • 不死神兔--java解决斐波那契数列

    不死神兔也叫做斐波那契数列或者叫做黄金分割数列或者叫做兔子数列 不死神兔问题 有1对兔子 从出生后的第3个月起每个月都生一对兔子 小兔子长到第三个月后每个月又生一对兔子 假如兔子都不死 问第n个月有几对兔子 需求 我们这里需要知道第二十个月
  • 【深度学习】全连接层 (Full Connection,FC)

    Introduce 全连接层也是一种卷积层 它的参数基本和卷积层的参数一样 只是它的卷积核大小和原数据大小一致 起到将学到的 分布式特征表示 映射到样本标记空间的作用 用 global average pooling 取代 FC 已经成为了
  • Java开发环境系列:你真的会用eclipse吗?

    第一步 下载Eclipse 并安装 下载链接 http www eclipse org downloads 1 点击 Download Packages 进入Eclipse下载界面 2 找到Eclipse IDE for Java EE D
  • 首创模拟电子计算机,指导日本原子弹投射,这个大佬有点牛

    作者 年素清 责编 王晓曼 出品 程序人生 ID coder life 万尼瓦尔 布什 Vannevar Bush 是美国历史上最伟大的科学家和工程师之一 他在二战时创立美国科学研究局 提出了著名的 曼哈顿计划 并指导了第一颗原子弹试验和日
  • Chapter Four : Python 序列之列表、元组操作详解合集

    目录 一 列表 1 列表基本操作 定义列表 删除列表 访问列表 遍历列表 2 列表常用方法及操作详解 2 1 添加元素 append extend insert 运算符 运算符 2 2 删除元素 del pop remove clear 2
  • flutter系列集合之App项目集成flutter混合开发详细指南大神必学

    消息队列目前流行的有KafKa RabbitMQ ActiveMQ等 它们的诞生无非不是为了解决消息的分布式消费 完成项目 服务之间的解耦动作 消息队列提供者与消费者之间完全采用异步通信方式 极力的提高了系统的响应能力 从而提高系统的网络请
  • 数据挖掘的种种-节课准备

    数据挖掘 Data Mining DM 又称数据库中的知识发现 Knowledge Discover in Database KDD 数据挖掘概述 数据挖掘 Data Mining DM 又称数据库中的知识发现 Knowledge Disc
  • C# InvokeRequired和Invoke

    一 简介 WinForm 关于InvokeRequired与Invoke Jlins的博客 CSDN博客 invokerequired c 是禁止夸线程直接访问控件 InvokeRequired是为了解决这个问题而产生的 当一个控件的Inv