在线程中调用OpenFileDialog/SaveFileDialog报错处理方法
当在一个线程中使用 OpenFileDialog ofd = new OpenFileDialog();
ofd.ShowDialog(); 会报如下错误:
在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常。、
解决办法:
1.将跨线程操作检查设置成false , 不建议这么做
Control.CheckForIllegalCrossThreadCalls = false;
- 对于 调用ShowDialog方法可以用this.Invoke(new Action(()=>{}));包围起来,让主线程去调用。
Task.Run(()=>{//...this.Invoke(new Action(()=> {SaveFileDialog saveFileDialog = new SaveFileDialog();saveFileDialog.Title = "保存文件";saveFileDialog.FileName = "save.txt";if (saveFileDialog.ShowDialog() == DialogResult.OK){//...}}));
});
- 通过设置线程的SetApartmentState(ApartmentState.STA)
Thread thread = new Thread(Receive);
thread.SetApartmentState(ApartmentState.STA);
thread.Start();private void Receive()
{SaveFileDialog saveFileDialog = new SaveFileDialog();saveFileDialog.Title = "保存文件";saveFileDialog.FileName = "save.txt";if (saveFileDialog.ShowDialog() == DialogResult.OK){//....}
}
在线程中调用OpenFileDialog/SaveFileDialog报错处理方法相关推荐
- MFC子线程中调用updatedata()函数报错解决方法
在XXXDlg.h顶部添加 #define WM_UPDATEDATA WM_USER+100 关联自定义消息,在XXXDlg.cpp中消息处理函数中添加 ON_MESSAGE(WM_UPDATEDA ...
- python3中调用map函数报错map object at 0x000001EF004D97B8
python3中调用map函数报错<map object at 0x000001EF004D97B8> 在python中这样的一段代码报错: a=map(int,input().split ...
- uex2中使用mapMutations/mapActions报错解决方法 BabelLoaderError: SyntaxError: Unexpected token
1.问题 在尝鲜vuex2时,发现vuex2增加了 mapGetters 和 mapActions 的方法,借助stage2的 Object Rest Operator 特性,可以写出下面代码: co ...
- python中调用linux命令报错cat: -: Bad file descriptor
在python脚本中国呢调用linux命令,nohup提交报错 cat: -: Bad file descriptor 但是,结果能正常输出, 没找到原因---
- 报错解决方案参考:《xv6分析与实验》中关于qemu运行报错解决方法
在获取了xv6源码之后,且安装了qemu sudo apt-get install qemu 编译并运行qemu时 make qemu# 编译通过 # 运行报错: *** Error: Couldn' ...
- oracle 归档日期,Oracle中归档日期满报错解决方法
最近在工作的时候操作数据库常会遇到这样的问题:"ORA-00257 archiver error. Connect internal only, until freed",百度搜了 ...
- 在线程中调用SaveFileDialog
在线程中调用SaveFileDialog 在多线程编程中,有时候可能需要在单独线程中执行某些操作.例如,调用SaveFileDialog类保存文件.首先,我们在Main方法中创建了一个新线程,并将其指 ...
- 使用 Feign 调用分页接口报错:Method has too many Body parameters(亲测)
一.背景 接口定义: @ApiOperation(value = "分页查询会话") @PostMapping(Routes.SESSIONS_QUERY) JsonResult& ...
- 13.10 Scala中使用JSON.toJSONString报错:ambiguous reference to overloaded definition
13.10 Scala中使用JSON.toJSONString报错:ambiguous reference to overloaded definition 问题描述: [ERROR] /Users/ ...
最新文章
- linux用户、组、权限问题
- face recognition[翻译][深度人脸识别:综述]
- ButterKnife 8.4.0 @BindView 失败,nullpointerexception
- 集美大学java考试题_我的JAVA习题集2
- 《精通J2EE网络编程》中讲的JNDI 6.1 什么是JNDI
- 12行代码AC——例题6-6 小球下落(Droppint Balls, UVa 679)——解题报告
- 广东东软学院计算机系主任罗,广东东软学院副校长朱爱红一行来访我校
- redis基础一_常用指令
- DBA生存警示:防范频发的数据误删除操作
- Scala学习笔记03:操作符
- as3实现(可以操纵的)真正的由惯性导致的漂移
- 用VS调试 javascript
- 2021级南航计算机专硕829备考记录
- 微信公众号推送模板消息(三):获取关注者列表 openid
- 西藏拉姆拉错:蓝蓝的湖水
- element Descriptions 内容超出隐藏 Tooltip展示完整内容
- oracle 12c导入dmp文件(实践)
- matlab画椭圆抛物面参数方程,求单叶双曲面和双叶双曲面、椭圆抛物面、双曲抛物面用matlab怎么画或其参数方程?...
- 利用遗传算法库DEAP优化交易策略
- 我和Double Lift的故事(三)——应用篇