多线程下调用ShowDialog时异常原因及解决办法_showdialog 异常 会发生什么问题-程序员宅基地

技术标签: c#  线程  c#技术  windows  microsoft  

提示在可以调用OLE之前,必须将当前线程设置为单线程单元(STA)模式,请确保您的Main函数带有STAThreadAttribute

导入导出功能,在调用ShowDialog时的错误,解决办法如下:

WinForm窗体的入口点:

复制代码

        /// <summary>
        /// 应用程序的主入口点加入 [STAThread]。
        /// </summary>
        [STAThread]
        private static void Main(String[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new LoginForm());
        }   

复制代码

修改如下:Thread线程调用SetApartmentState(ApartmentState.STA)设置 //重点

                 此种报错情况下就不能用Task创建线程了,因为Task没有SetApartmentState方法

复制代码

    public string importPath=""; //全局变量,用于显示导入文件路劲

        private void btnImport_Click(object sender, EventArgs e)
        {
            Thread importThread = new Thread(new ThreadStart(ImportDialog));
            importThread.SetApartmentState(ApartmentState.STA); //重点
            importThread.Start();
            txtImportPath.Text = importPath;
        }
        public void ImportDialog()
        {
            OpenFileDialog open = new OpenFileDialog();
            open.Filter = "Excel文件|*.xls;*.xlsx";
            if (open.ShowDialog() == DialogResult.OK)
            {
                importPath = open.FileName;

                ReadExcelToTable(importPath);
                UpdateArea();
            }
        }

复制代码

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011555996/article/details/121643291

智能推荐

依托人工智能加速数字经济发展的路径思考-程序员宅基地

文章浏览阅读111次。介绍人工智能对于我国数字经济的发展重要作用,从人工智能作为新技术基础设施支撑、人工智能产业发展、产业智能化、空间智能化等方面详细分析人工智能在数字经济发展中面临的问题,阐述人工智能“三横四纵”技术框架体系,提出六大发展建议,并对人工智能对数字经济的助推作用进行展望。人工智能作为一种新技术基础设施存在算据欠缺、算力设施薄弱、算法研究能力不强、算网融合协同性不足的问题。如图像识别、人脸识别、行为识别、语音识别已被广泛用于交通管理、安防、身份认证、辅助医疗诊断、智能客服能方面。构建全周期、多尺度的智能化空间。

OpenAI Gym中FrozenLake环境(场景)源码分析(2)_openai源码-程序员宅基地

文章浏览阅读174次。OpenAI Gym中FrozenLake环境(场景)源码分析(2)_openai源码

web前端-css中最直观的反馈-伪类及伪元素选择器的使用_css点击反馈-程序员宅基地

文章浏览阅读1.2k次,点赞68次,收藏57次。作者简介:苏凉(专注于网络爬虫,数据分析)博客主页:苏凉.py的博客系列专栏:web前端基础教程名言警句:海阔凭鱼跃,天高任鸟飞。要是觉得博主文章写的不错的话,还望大家三连支持一下呀!!!关注点赞收藏文章目录前言css伪类选择器:active:link和:visited:hover伪类选择器合集css伪元素选择器伪元素合集::after和::before::first-letter::first-line::selection小结前言上期给大家讲了css的一些选择器的.._css点击反馈

Redis的安装以及在项目中使用Redis的一些总结和体会_homeview 安装redsi-程序员宅基地

文章浏览阅读416次。第一部分:为什么我的项目中要使用Redis 我知道有些地方没说到位,希望大神们提出来,我会吸取教训,大家共同进步!注册时邮件激活的部分使用Redis 发送邮件时使用Redis的消息队列,减轻网站压力。 使用Lucene.Net在进行分词时使用Redis消息队列和多线程来避免界面卡死等性能问题。 请大家先思考一个问题:这个问题在大并发、高负载的网站中必须考虑!大家思考如何让速度..._homeview 安装redsi

Oracle 格式化日期_oracle 函数 fx修饰符-程序员宅基地

文章浏览阅读2.9k次。-- Start所谓格式化日期指的是将日期转为字符串,或将字符串转为日期,下面几个函数可以用来格式化日期。TO_CHAR(datetime, 'format')TO_DATE(character, 'format')TO_TIMESTAMP(character, 'format')TO_TIMESTAMP_TZ(character, 'format')我们先来看看通过下面的 S..._oracle 函数 fx修饰符

Appium-ADT-Eclipse 实现Android 机 自动化测试_adt引擎-程序员宅基地

文章浏览阅读1.1k次,点赞3次,收藏7次。第一步、安装JDK;第二步、安装Eclipse;第三步、下载并安装AndroidSDK;第四步、为Eclipse安装ADT插件下面详细介绍。第一步、安装JDKAndroid自动化开发测试 必须安装JDK(JavaDevelopment Kit),不能只安装JRE(Java Runtime Edition),在安装Android开发工具之前需要先安装JavaJDK。尤其是Eclipse的开发过程必..._adt引擎

随便推点

操作系统 短进程优先算法(C++)_短进程优先算法代码-程序员宅基地

文章浏览阅读1.8k次。思路用结构体数组存储pcb表,用优先队列维护就绪的进程,优先队列存储pair<pcb的序号, 进程运行所需时间>,按照运行时间从小到大排序。然后运行即可。代码#include <iostream>#include <algorithm>#include <vector>#include <map>#include <string>#include <string.h>#include <cstdio&_短进程优先算法代码

【信号处理】基于巴特沃斯滤波器、切比雪夫1型滤波器、FIR滤波器设计含报告附Matlab代码-程序员宅基地

文章浏览阅读587次,点赞18次,收藏11次。本文探讨了三种常见的数字滤波器设计方法:巴特沃斯滤波器、切比雪夫1型滤波器和FIR滤波器。我们介绍了每种方法的原理、设计步骤和优缺点。此外,我们还提供了详细的Matlab代码示例,以说明如何设计和实现这些滤波器。引言数字滤波器在信号处理中至关重要,用于从信号中提取特定频率分量或消除噪声。有各种各样的数字滤波器设计方法,每种方法都有其独特的特性和应用。本文重点介绍了巴特沃斯滤波器、切比雪夫1型滤波器和FIR滤波器这三种最常用的方法。巴特沃斯滤波器巴特沃斯滤波器是一种最平坦通带响应的滤波器。

py-02-DATABASE_查询item表中联想、戴尔、三木的商品名称列表(title)sql语句-程序员宅基地

文章浏览阅读363次。 目录:01: 服务器概述、数据库服务器、创建数据库、创建数据表02: 基础查询、增删改操作、复杂查询、关联查询03: 常用函数、分页、触发器04: 视图、存储过程、客户端工具SQLyog05: 创建京淘电商中的所有数据库表之用户表和商品表06: 综合项目实战07: 创建京淘电商中的所有数据库表之购物车表和订单表08:Mysql思维导图 01: 服务器概..._查询item表中联想、戴尔、三木的商品名称列表(title)sql语句

北大ACM线上比赛有感_线上acm比赛-程序员宅基地

文章浏览阅读1.6k次。 第一次参加了PKU的ACM线上热身题,据说是为了7.30号的月赛做准备的。大致看了一下题目。第一道题就把我整的,我快写好的时候两小时快过去了。我理解题意花了半小时。写了200多行的代码,最后他们说题目弄错了。我于是重新刷新了一下,花了三十分钟做了第一题,一遍AC。第二题我又理解错了题意,想复杂了,写了接近两百行的代码。最后竟然是CE!郁闷ing。最后我发现原来我做的第一道题是C题。我更加_线上acm比赛

一文带你搞懂Android多线程Handler,成功入职腾讯-程序员宅基地

文章浏览阅读123次。开头年前面试了一些公司,目前已经拿到了阿里跟头条的 offer。去年我也出去找工作了,面试五家拿到了四家公司的 offer。所以在面试方面我应该可以提供一些愚见吧。本篇会讲解一些常见题目以及一些答题技巧。其实面试的过程也是对自己知识的一个梳理过程,工作中我们学到的东西都是碎片化的,那么面试前我们就需要把这些碎片化的知识梳理出来,形成自己的知识体系。每个人都应该建立一套自己的知识网络,而这个知识网络就是你的资本,让你的资本不断扩大你才会变的更有价值。应届坎坷求职路一个广州非985/211普通本科生,

Windows 7环境下部署靶场环境(附靶场环境工具)_部署 window 环境信息安全练习靶场-程序员宅基地

文章浏览阅读1.9k次,点赞2次,收藏9次。部署grade、dvwa、sqli-lbas、upload-labs、book、web几个靶场环境1. 将靶场环境copy到windows7虚拟机中2. 启动phpStudy3.打开phpMyAdmin4.将靶机环境文件夹放在www目录下5.创建数据库并访问各个环境(DVWA和upload直接就可以搭建)靶场环境提取链接(百度网盘):https://pan.baidu.com/s/1iSI6FXI4XTpZioXlRGa-mA提取码:84tn..._部署 window 环境信息安全练习靶场

推荐文章

热门文章

相关标签