码迷,mamicode.com
首页 > 编程语言 > 详细

在线程中使用OpenFileDialog

时间:2015-02-03 20:59:08      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:

今天一个客户反映上传文件程序卡死了,系统上传文件这么稳定的功能怎么可能有这个问题!现场一看果真如此,遂到本机测试,还真是这样。无语......

经过跟踪是在打开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

标签:

原文地址:http://www.cnblogs.com/jiangxiaoqiang/p/4270830.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!