如下:

在窗口构造函数中将CheckForIllegalCrossThreadCalls设置为 false

public Form1()
        {
            InitializeComponent();
            CheckForIllegalCrossThreadCalls = false;
        }

【msdn】
如何:对 Windows 窗体控件进行线程安全调用

使用多线程提高 Windows 窗体应用程序的性能时,必须注意以线程安全方式调用控件。

示例

访问 Windows 窗体控件本质上不是线程安全的。如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的 bug,包括争用情况和死锁。确保以线程安全方式访问控件非常重要。

.NET Framework 有助于在以非线程安全方式访问控件时检测到这一问题。在调试器中运行应用程序时,如果创建某控件的线程之外的其他线程试图调用该控件,则调试器会引发一个 InvalidOperationException,并提示消息:“从不是创建控件 control name 的线程访问它。”

此异常在调试期间和运行时的某些情况下可靠地发生。强烈建议您在显示此错误信息时修复此问题。在调试以 .NET Framework 2.0 版之前的 .NET Framework 编写的应用程序时,可能会出现此异常。

注意

可以通过将 CheckForIllegalCrossThreadCalls 属性的值设置为 false 来禁用此异常。这会使控件以与在 Visual Studio 2003 下相同的方式运行。

转载于:https://www.cnblogs.com/lanru/archive/2010/07/15/1777892.html

多线程中使用CheckForIllegalCrossThreadCalls = false访问窗口相关推荐

  1. 多线程中数据的并发访问与保护

    在多线程编程中,不可避免地要对一些共享的数据进行访问.由于线程之间对共享数据的访问是独立的,任何一个线程都可对共享数据进行访问和修改,且它们之间是异步并发进行的,特别是当需要对共享数据进行修改时,就会 ...

  2. c# 多线程中lock用法的经典实例

    一.Lock定义     lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断.它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行, ...

  3. 多线程中的应用之队列(queue)

    队列queue 多应用在多线程中,对于多线程访问共享变量时,队列queue是线程安全的. 从queue队列的实现来看,队列使用了1个线程互斥锁(pthread.Lock()),以及3个条件标量(pth ...

  4. C#多线程窗体控件安全访问实现方法

    C# 2.0 为了线程安全,不充许子线程直接访问窗体中的控件 如果在子线程中直接访问说窗体控件,编译器会提示,控件不是 由该线程创建的. 那么在子线程中如何访问窗体中的控件呢? 在窗体的构造函数中加入 ...

  5. 关于多线程中的面试题

    关于多线程中的面试题 常见面试的 1.现在有T1.T2.T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行? 答:使用join就OK了. public class ThreeThr ...

  6. 多线程对共享资源的访问

    一.什么是多线程? 线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程. 所有的线程虽然在微观上是串行执行的,但是在宏观上你完全可以认为它们在并行执行 二.那什 ...

  7. C++ 在多线程中使用mciSendString播放音乐 下篇

    首先: 我还是一个多线程编程的新手,用的方法可能有不妥当的地方,有不足之处还望各位包涵. 通过上一篇,咱们已经对mciSendString在多线程中的使用要点有了一个初步认识,接下来该解决线程间信息传 ...

  8. C# 中禁止跨线程访问解决-- MethodInvoker的理解

    以下引用自:   c#使用MethodInvoker解决跨线程访问控件 net 原则上禁止跨线程访问控件,因为这样可能造成错误的发生,有一种方法是禁止编译器对跨线程访问作检查,Control.Chec ...

  9. Oracle字符串转BooIean,利用Java的多线程技术实现数据库的访问.pdf

    利用Java的多线程技术实现数据库的访问.pdf 第 卷第 期 计算机应用 22 12 Voi .22 , No . 12 年 月 2002 12 Computer Appiications Dec ...

  10. pb 修改数据窗口种指定字段位置_如何在PB数据窗口中修改数据---设置数据窗口的更新属性...

    如何在 PB 数据窗口中修改数据 --- 设置数据窗口的更新属性 数据窗口对象非常强大的原因之一就是能够很容易地修改数据库.当用户修 改了数据窗口中的数据,插入了新的数据行或者删除了数据行以后,只要调 ...

最新文章

  1. Visual Studio Code设置中文包/配置中文语言
  2. CG CTF RE Hello,RE!
  3. 编译:ffmpeg,精简ffmpeg.exe
  4. 微信php 客户端cookie,微信内置浏览器中的cookie很诡异呀
  5. 【学术工具】公式免费转 LaTex 代码,截图、转换一气呵成,每月 1000 次全免费...
  6. 动态数组--一维数组
  7. 操作系统概念第三章部分作业题答案
  8. 在线HTTP POST/GET接口测试 地址
  9. 运行代码时出现的问题
  10. 32位CPU最多支持4G内存是怎么算出来的?(解惑篇)
  11. mysql sending data_MySQL:sending data状态包含了什么
  12. android仿钉钉日程日历,Flutter仿钉钉考勤日历的示例代码
  13. Nginx安装/负载均衡/反向代理配置与调优
  14. Carsim2016及2019 轨迹跟踪过程中跑直线的解决方案
  15. H5前端学习之一HTML和CSS基础认识
  16. js实现粘贴板js插件clipboard.js实现一键复制粘贴功能
  17. 内联函数有什么优点?内联函数和宏定义的区别
  18. 固定系数与自适应结合的主动降噪耳机设计实验
  19. 论文导读 | 基于多臂赌博机(MAB)建模的SimRank计算
  20. VIPS:基于视觉的Web页面分页算法

热门文章

  1. android MVC和MVP探讨
  2. 干货!一份超详细的Spring Boot知识清单
  3. java 环境变量 ln s_java的环境变量
  4. bootstrap java web_JavaWEB开发05_Bootstrap
  5. python快速入门神器 知乎_Python爬虫偷懒神器!快速一键生成Python爬虫请求头
  6. html取消css样式,css如何取消样式
  7. unity导出fbx_使用Blender和Unity创建一个简单Low Poly的模型(一)
  8. z变换解差分方程例题_中级数学4 - 多元线性方程
  9. 16kb等于多少b_MySQL为何选择B+树存储索引?
  10. python在数字后添加字符_用python生成数字、字母和特殊字符混合的字符串