SaveFileDialog 线程Join()

遇到的问题:修改的聊天工具传输文件时, 发送端显示发送成功了,但是到接受端保存时,savefiledialog 保存对话框就是弹不出来

解决方法:

在网上找到的解决方法,在主线程里面调用

修改前:

   SaveFileDialog saveFile = new SaveFileDialog();
            saveFile.Title = "选择保存路径 ";
            saveFile.OverwritePrompt = true;
            saveFile.FileName = fileNameAccept;

            //确定 
            if (saveFile.ShowDialog() == DialogResult.OK)
            {
                //路径取得 
                string localFilePath = saveFile.FileName.ToString();

             }

修改后:

              t_save = new Thread(saveDialog);//NEW一个新的线程
              t_save.IsBackground = true;

              t_save.SetApartmentState(ApartmentState.STA);//缺少这句话,就会出错误。
              t_save.Start();

              t_save.Join();//等待这个线程执行完才可以走其他的线程

                 public void saveDialog()

                {

                        SaveFileDialog saveFile = new SaveFileDialog();
                        saveFile.Title = "选择保存路径 ";
                        saveFile.OverwritePrompt = true;
                          saveFile.FileName = fileNameAccept;

                        //确定 
                        if (saveFile.ShowDialog() == DialogResult.OK)
                        {
                            //路径取得 
                            string localFilePath = saveFile.FileName.ToString();

                    }

除了不能弹出窗体,还遇到了一个问题就是路径还没选好呢,另外一个用到该路径的地方就抛出异常了,在网上查了一下发现可以用t_save.Join()方法,就是只有t_save行完了才可以去执行其他的线程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值