zoukankan      html  css  js  c++  java
  • Thread调用SaveFileDialog

            public void ThreadSaveFileDialog(string sourceFileName)
            {
                Thread importThread = new Thread(new ParameterizedThreadStart(SaveDialog));
                importThread.SetApartmentState(ApartmentState.STA); //重点
                importThread.IsBackground = true;
                importThread.Start(sourceFileName);
    
            }
    
    
            public static MainForm ScratchForm;//这个是主窗口
            private void SaveDialog(object sourceFileName)
            {
                SaveDialogShow(sourceFileName as string);
    
            }
    
            delegate void SaveDialogShowCallBack(string sourceFileName);
            private void SaveDialogShow(string sourceFileName)
            {
           //判断主窗口是否跨线程调用
    if (ScratchForm.InvokeRequired) { SaveDialogShowCallBack stcb = new SaveDialogShowCallBack(SaveDialogShow); ScratchForm.Invoke(stcb, new object[] { sourceFileName }); } else {
              //将saveFileDialog附加上主From上,否则的话点击主窗口会把savefiledialog给遮挡住。重复点击保存会弹出多个savefiledialog result
    = ScratchForm.saveFileDialog.ShowDialog(ScratchForm); if (result == DialogResult.OK) { string destFileName = ScratchForm.saveFileDialog.FileName; Task.Run(() => { File.Copy(sourceFileName, destFileName, true); }); } } }
  • 相关阅读:
    前端的一些小的效果
    数组排序
    查看字符串中出现次数最多的字符以及出现的次数
    让元素垂直水平居中的方式
    MySQL
    数组_集合转换
    Spring_使用(JDBC)
    Spring_Aop基于配置文件
    Spring_Aop_(二)
    Spring_总结
  • 原文地址:https://www.cnblogs.com/xbzhu/p/9095305.html
Copyright © 2011-2022 走看看