首页 > 代码库 > 在线程中使用OpenFileDialog
在线程中使用OpenFileDialog
今天一个客户反映上传文件程序卡死了,系统上传文件这么稳定的功能怎么可能有这个问题!现场一看果真如此,遂到本机测试,还真是这样。无语......
经过跟踪是在打开OpenFileDialog时导致,由于此表单打开是调用另一个入口进入的,在打开后记录下日志发现:线程号是独立的。由此可以判断打开表单的是新线程。那么是不是线程调用OpenFileDialog有限制呢?
经过一番搜索果真如此,调用时需要设置线程的ApartmentState属性为STA。那么问题可以初步解决了,新开一个线程调用上传方法:
Thread thread = new Thread(new ThreadStart(UploadAffix)); thread.SetApartmentState(ApartmentState.STA); thread.Start();
标红的语句是关键点。
参考:C# 多线程中OpenFileDialog和SaveFileDialog失效的解决方法
http://www.360doc.com/content/14/0210/16/12338415_351392547.shtml
在线程中使用OpenFileDialog
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。