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);
});
}
}
}
Thread调用SaveFileDialog的更多相关文章
- 在线程中调用SaveFileDialog
在多线程编程中,有时候可能需要在单独线程中执行某些操作.例如,调用SaveFileDialog类保存文件.首先,我们在Main方法中创建了一个新线程,并将其指向要执行的委托SaveFileAsyn.在 ...
- Unity C# 调用SaveFileDialog保存Excel文件
本文原创,转载请注明出处:http://www.cnblogs.com/AdvancePikachu/p/6893934.html 本文学习如何把数据转存为Excel文件并调用SaveFileDial ...
- Thread 调用方法的方式
1.传统ThreadStart 2.ParameterizedThreadStart 3.委托thread = new Thread(delegate() { NoticeBroadcast(user ...
- java双线程调用同一个对象+锁
两个线程(Thread)调用同一个对象(使用Runnable接口的对象ThreadJob) 误区:下一个线程会从上一个线程结束的地方开始 正解:如 public domd implements Run ...
- [置顶] Android开发之Thread类分析
在我们Linux系统中创建线程函数为:pthread_create(),在Android中我们为线程封装了一个类Thread,实际调用的还是pthread_create() 当我们想创建线程的时候,只 ...
- Effective Modern C++ Item 37:确保std::thread在销毁时是unjoinable的
下面这段代码,如果调用func,按照C++的标准,程序会被终止(std::terminate) void func() { std::thread t([] { std::chrono::micros ...
- Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fabric模块
Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fab ...
- Android Handler 异步调用修改界面与主线程
在Android编程的过程中,如果在Activity中某个操作会运行比较长的时间,比如:下载文件.这个时候如果在主线程中直接下载文件,会造成Activity卡死的现象:而且如果时间超过5秒,会有ANR ...
- Java 线程第三版 第四章 Thread Notification 读书笔记
一.等待与通知 public final void wait() throws InterruptedException 等待条件的发生. public final void wait(lo ...
随机推荐
- 10g 升级到11g 失效对象2则
########SAMPLE 0 Invalid X_$ Views & Synonyms After Upgrading to 11g (文档 ID 878623.1) Those view ...
- Python的html解析器
转自https://blog.csdn.net/jqh2002_blog/article/details/24842217 其实比较不同的解析器对html的处理能力是有点麻烦的,因为它们处理的步骤并不 ...
- Centos 7搭建Gitlab服务器(一),搭配文章(二)一起使用,效果更好
一. 安装并配置必要的依赖关系在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问. 1.安装ss ...
- Oracle系统表整理 --sql
-- DBA/ALL/USER/V_$/GV_$/SESSION/INDEX开头的绝大部分都是视图-- DBA_TABLES意为DBA拥有的或可以访问的所有的关系表.-- ALL_TABLES意为某一 ...
- 看一段Delphi导出到Word的源代码
procedure TFrmWeekAnalysisQry.BtnExportToExcelClick(Sender: TObject);var wordApp,WordDoc,WrdSelectio ...
- Oracle PL/SQL编程之函数
注: 以下测试案例所用的表均来自与scott方案,使用前,请确保该用户解锁. 代码的执行环境是在sqlplus中 1.简介 函数用于返回特定的数据,当建立函数时,函数头部必须包含return子句,而在 ...
- 【javascript/css】Javascript+Css实现图片滑动浏览效果
今天用js+css来做一个能够左右滑动的图片浏览效果. 首先写一个结构,包括需要浏览的两张图,以及能够点击来滑动图片的两个按钮. <!DOCTYPE html> <html> ...
- Nodejs 实现windows后台运行
首先需要到http://nssm.cc/download/?page=download 下载 nssm 下下来之后是压缩包形式的,解压之后 ctrl + R 进入cmd 命令行界面 在命令行模式下进入 ...
- 快速上手:在CVM上安装Apache
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由一步 发表于云+社区专栏 介绍 Apache HTTP服务器是世界上使用最广泛的Web服务器.它提供了许多强大的功能,包括可动态加载的 ...
- PHP学习9——MySQL数据库
主要内容: MySQL的启动 MySQL数据库操作 数据库表设计 创建和查看表 修改表结构 MySQL语句操作 数据库备份与恢复 PHP操作MySQL数据库 面向对象的数据库操作 MySQL数据库是目 ...