C#“System.Threading.ThreadStateException”类型的未经处理的异常

2023-05-16

备忘
最近做一个功能,从主界面进入另一个界面时,数据量较大,处理信息较多,程序宕机。而且点击程序还会提示程序无响应。不得已用另一个线程显示界面。但在界面中使用控件时,报错:“System.Threading.ThreadStateException”类型的未经处理的异常在 System.Windows.Forms.dll 中发生
其他信息: 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。

参考处理的原理文章:https://www.jb51.net/article/134002.htm
这两种,无论哪种写法,在代码执行的时候,会报错,具体报错为:

“System.Threading.ThreadStateException”类型的未经处理的异常在 System.Windows.Forms.dll 中发生

其他信息: 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常。

这种情况,在网上查询,是说线程问题,就是线程冲突了,不知道该执行哪一个,具体说法如下:

COM提供的线程模型共有三种:Single-Threaded Apartment(STA 单线程套间)、Multithreaded Apartment(MTA 多线程套间)和Neutral Apartment/Thread Neutral Apartment/Neutral Threaded Apartment(NA/TNA/NTA 中立线程套间,由COM+提供)。

STA 一个对象只能由一个线程访问,相当于windows的消息循环,实现方式也是通过消息循环的,ActiveX控件、OLE文档服务器等有界面的,都使用STA的套间。 MTA 一个对象可以被多个线程访问,即这个对象的代码在自己的方法中实现了线程保护,保证可以正确改变自己的状态。

所以创建和访问一个activex或者ole对象时,必须设置线程模式为sta。

所以简单处理:
创建的线程设置模式就可以了:
t1.SetApartmentState(ApartmentState.STA);

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

C#“System.Threading.ThreadStateException”类型的未经处理的异常 的相关文章

  • WKHtmltoPdf

    踩过的坑 请一定要使用下面的这种方式获取系统的可执行命令 xff0c 否则会报一堆的找不到目录等错误 xff01 xff01 xff01 String osname 61 System getProperty 34 os name 34 t
  • itext5 生成pdf

    最近项目中有需求 xff0c 需要生成一些打印的pdf数据 xff1b 经过调研发现使用itext生成的pdf的速度最快 下面讲解一下使用itext5 43 thymeleaf生成pdf的方法 xff1b 首先需要引入itext5相关的包
  • settings

    原理 通过 ContentProvider 和 ContentObserver实现的 调用方式 改值 span class token keyword void span span class token function test spa
  • Android BottomNavigationView修改导航文字大小无效的解决方法

    网上搜索到的大部分修改BottomNavigationView文字大小的方式 xff0c 都是通过dimens xml文件覆盖BottomNavigationView 底部导航栏默认使用的dimen来达到修改的效果 xff0c 但是在新的版
  • 同个局域网共享文件夹方法,ftp,多台电脑共同操作文件夹

    1 首先创建一个文件夹 xff08 命名随便 xff09 2 右键该文件夹选择属性 xff0c 进入该文件属性 xff0c 接着点击共享 xff0c 接下来就看下面图来操作就行了 选择了everyone后记得点添加 添加之后下面列表就会出现
  • MacOS 日历和群晖日历同步问题解决

    问题 xff1a 一直不能建立 群晖日历 账户 xff08 但可以订阅 xff09 2021 08 23 群晖日历和MAC日历不能同步问题 2021 08 23提示错误 xff1a 发生错误 xff0c 错误 1 解决 xff1a 1 主要
  • sudo apt-get install gcc-4.4 g++-4.4 g++-4.4-multilib

    问题 xff1a sudo apt get install gcc 4 4 g 43 43 4 4 g 43 43 4 4 multilib 正在读取软件包列表 完成 正在分析软件包的依赖关系树 正在读取状态信息 完成 没有可用的软件包 g
  • 如何修改电脑的MAC地址?

    常见的修改方式为修改有线的MAC地址 xff0c 本文主要讲述如何修改有限MAC地址 xff1b 首先第一步让电脑通过网线和交换机相连接 xff0c 这样才可以看到能够修改的网卡 xff1b 图中为未连接网线时的网络连接状态 xff0c 如
  • C#RabbitMQ消息队列的使用

    C RabbitMQ消息队列的使用 概念 1 消息 Message 消息指的是两个应用之间传递的数据 其中数据的类型可以有很多的形式 xff0c 可能只是包含文本字符串的一条消息 xff0c 也可能时一个嵌入的对象 2 消息队列 Meaas
  • 基础篇:03-SpringCloud工程部署启动

    目录 1 工程搭建部署 方案一 xff1a 完整工程导入 方案二 xff1a 从零开始搭建 1 工程与module创建 2 数据库导入 3 项目启动 3 1 启动并访问user service 3 2 启动并访问order service
  • TS常见面试题

    type和接口interface的区别 type和interface都可以用来定义类型 xff0c 都可以定义对象和函数 xff1b 都可以继承或扩展其他类型 xff0c 但语法不一样 xff1b 都支持泛型 不同点 xff1a type可
  • 36个JavaScript实用函数

    JavaScript 是一个很复杂的语言 xff0c 很多新手在使用它开发应用的时候会发现很多功能无从下手 有了我根据功能分类总结的 36 个 JavaScript 技巧 xff0c 复制粘贴一键搞定 xff01 帮助你提高开发效率 快速解
  • vim 实现批量注释

    vim 实现批量注释 第一种方法 批量插入字符快捷键 xff1a Ctrl 43 v进入VISUAL BLOCK xff08 可视块 xff09 模式 xff0c 按 j xff08 向下选取列 xff09 或者 k xff08 向上选取列
  • linux sh脚本无法执行

    有可能是该sh文件不是直接在linux上创建的 xff0c 实在外部新建 xff0c 导致无法识别 解决 xff1a 在linux上新建一个sh文件 xff0c 并执行chmod 755 lt sh文件 gt 即可 sh文件执行命令 xff
  • pycharm远程通过SSH调用linux环境下的python

    最近博主在帮老师做项目 xff0c 因为更习惯使用windows系统 xff0c 平常没少花时间在配置环境上 在linux环境安装各类环境库的方便程度要远远高于window环境下 xff0c 但是每次都要在远程连接服务器或者打开虚拟机未免有
  • Ubuntu14.04 Chrome闪退问题

    具体表现 xff1a 打开Chrome后等待大约两分钟自动崩溃退出 解决方案 xff1a sudo apt install reinstall libnss3
  • 群晖note station client 闪退(Mac OS Monterey)

    问题 xff1a 升级后如题 解决 xff1a 下载官方Bug 修正版 xff0c 覆盖安装 xff01 ftp Synology RackStation 出处 xff1a Note Station Client not working o
  • 美化VScode终端(报错信息用不同颜色区分)

    在PythonXY Lib site packages xff08 Anaconda位置为envs XX PythonXY site packages xff09 中添加sitecustomize py xff0c 内容如下 xff1a i
  • ActiveMQ教程之二:queue和topic的使用

    文章目录 三 基本的使用1 JMS编码总体规范2 Destination简介3 队列消息生产者消费者入门案例4 TOPIC消息生产者消费者入门案例 三 基本的使用 1 JMS编码总体规范 JMS Java 消息中间件的服务接口规范 xff0
  • Vnc viewer连接超时的问题

    转载地址 xff1a https blog csdn net yzg2010a article details 37994145 服务器打开了 vncserver但是vnc viewer无法连接 xff0c 连接超时 原因 xff1a 服务

随机推荐

  • jtag不识别

    win10电脑装了两版vivado xff0c 2017和2021 xff0c 突然有一天要用JTAG的时候发现不识别 xff0c 设备管理器显示如下 xff1a 用vivado自动连接 xff0c 显示如下 xff1a Xicom 50
  • Linux安装jdk1.8和配置环境变量

    每次感觉配这个都很简单 xff0c 但每次都要查一下 xff0c 毕竟配错一点 后面都比较麻烦 xff0c 记录一下 xff0c 方便以后查看 linux 下安装jdk和windows下的安装是一样的 xff0c 之前在windows安装的
  • 一段比较浅显易懂的java识别pdf 文字及图片

    使用pdfbox及orc进行pdf文件的文字及图片的识别 pom设置相关依赖 lt pdf相关依赖开始 gt lt dependency gt lt groupId gt org apache pdfbox lt groupId gt lt
  • 制作多系统启动U盘

    多系统启动U盘制作 制作过系统启动盘的人都知道 xff0c 一个U盘只要被制作成启动盘后 xff0c 里面的文件将是杂乱无章的 xff0c 抛开我们的强迫症不说 xff0c 主要是这有失我们的逼格 xff0c 不符合我们作为 会装系统 的大
  • app专项性能测试——获取手机cpu、内存、流量

    1 Cpu获取 了解过腾讯GT工具的源码 xff0c 他们用的是通过读取 proc stat的数据 xff0c 将每一个核的cpu使用跟闲置数据提取 使用率永远是增量式计算 计算方法为100 xff08 cpu忙时增量 cpu整体增量 xf
  • java并发-生产者消费者模式

    java并发总结三 实现线程间通信的几种方法 Object wait notifyAll span class token keyword package span concurrent span class token punctuati
  • linux上安装vscode-下载tar.gz

    1下载文件 这里推荐下载tar gz 文件 https span class token punctuation span span class token operator span code span class token punct
  • Cellranger故障排除

    Cellranger 运行不久 xff0c 即出现 runtime failed ID SC RNA COUNTER CS SC RNA COUNTER CHEMISTRY DETECTOR DETECT CHEMISTRY 然后终止 考虑
  • Duende.IdentityServer——快速开始

    一 新建鉴权中心服务 1 安装Duende IdentityServer模板 打开命令行工具 xff0c 输入以下命令 xff08 若已安装 xff0c 直接跳过 xff09 dotnet new install Duende Identi
  • Duende.IdentityServer——添加认证策略

    上一章我们已经获取到了token xff0c 本文我们对webApi添加认证策略 1 修改HostingExtensions cs中的ConfigureServices方法 添加如下代码 span class token comment 添
  • vmware中linux使用gparted调整磁盘大小并设置swap分区

    vmware中linux使用gparted调整磁盘大小并设置swap分区 今天使用虚拟机的时候 xff0c 发现虚拟机快满了 xff0c 提示磁盘空间小 xff0c 不得不扩充虚拟机空间 1首先把vmware中的ubuntu关机 xff0c
  • Gnome安装及个性化设置

    最近尝试了一下gnome桌面管理系统 xff0c 感觉还不错 xff0c 我的桌面我做主 先上图 xff1a 接下来 xff0c 详细说一下安装的过程 1 首先是在unity界面下通过命令行安装配置gnome sudo apt get in
  • 异常的处理

    Java异常处理的五个关键字 xff1a try catch finally throw throws 2 1 抛出异常throw 在编写程序时 xff0c 我们必须要考虑程序出现问题的情况 比如 xff0c 在定义方法时 xff0c 方法
  • 如何解决version `GLIBCXX_3.4.29‘ not found的问题

    首先 xff0c 运行时出现的问题如下 xff1a ImportError lib x86 64 linux gnu libstdc 43 43 so 6 version 96 GLIBCXX 3 4 29 39 not found req
  • Android EditText 手机号344格式化输入的最佳实现

    PhoneTextWatcher 手机号格式化监听器 xff0c 支持普通输入 删除 xff0c 中间输入 删除 xff0c 在任意位置下黏贴 剪贴多个数字等多种交互场景 目前支持的手机号格式为 3 4 4 分隔符可以自定义 Preview
  • JDispatcher-高效的 Android 组件生命周期分发框架

    JDispatcher Android 组件生命周期分发框架 xff0c 适用于组件化 xff0c 模块化 xff0c 启动优化等场景 Github JDispatcher 功能介绍 实现 Application 各个生命周期方法在所有需要
  • Kotlin | 委托(Delegation )详解

    本文要点概述 辨析委托模式与代理模式 接口委托 Delegated interface 属性委托 Delegated properties 映射委托 Map delegation 延迟属性 lazy properties 非空属性 Dele
  • node 和 npm 源码编译安装

    本文出处 xff1a www 678fly cn node 和 npm 源码编译安装 下载源码压缩包 xff1a http nodejs cn download 解压文件并将文件迁移到 usr local 下 span class toke
  • Outlook2013/2016中的Gmail设置

    Outlook2013 2016中的Gmail设置 注意 xff1a 用户名 xff1a useer 64 gmail com 全称 不要选中 使用安全密码验证 SPA 进行登录 复选框 除非 Gmail 指定 xff0c 否则所有服务器和
  • C#“System.Threading.ThreadStateException”类型的未经处理的异常

    备忘 最近做一个功能 xff0c 从主界面进入另一个界面时 xff0c 数据量较大 xff0c 处理信息较多 xff0c 程序宕机 而且点击程序还会提示程序无响应 不得已用另一个线程显示界面 但在界面中使用控件时 xff0c 报错 xff1