线程中使用SaveFileDialog不能弹出窗体

简介: 在子线程中使用 SaveFileDialog 无法弹出窗体,主要是我们需要用主线程去处理SaveFileDialog ,我们可以将子线程进行如下设置:public partial class Form1 : Form    {        public Form1()        {    ...

在子线程中使用 SaveFileDialog 无法弹出窗体,主要是我们需要用主线程去处理SaveFileDialog ,

我们可以将子线程进行如下设置:

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Thread t = new Thread(saveDialog);
            t.IsBackground = true;

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

        public void saveDialog()
        {
            SaveFileDialog result = new SaveFileDialog();
            result.ShowDialog();
        }
    }

目录
相关文章
【基础】多线程更新窗体UI的若干方法
如果您觉得文章对您有帮助,可以【打赏】博主或点击文章右下角【推荐】一下。您的鼓励是博主坚持原创和持续写作的最大动力!
522 0
|
C#
C#线程访问winform窗体控件
参考地址:http://www.cnblogs.com/jason-liu-blogs/archive/2012/09/08/2677008.html 添加: public Form() { InitializeComponent(); Control.
716 0
在C#中子线程如何操作主线程中窗体上控件
                                                       在C#中子线程如何操作主线程中窗体上控件         在C#中,直接在子线程中对窗体上的控件操作是会出现异常,这是由于子线程和运行窗体的线程是不同的空间,因此想要在子线程来操作窗体上的控件,是不可能简单的通过控件对象名来操作,但不是说不能进行操作,微软提供了Invoke的方法,其作用就是让子线程告诉窗体线程来完成相应的控件操作。
1363 0
|
C#
C#多线程编程实例 线程与窗体交互
C#多线程编程实例 线程与窗体交互 代码: public partial class Form1 : Form { //声明线程数组 Thread[] workThreads = new Thread[10]; publ...
630 0
|
C# Windows 开发者
使用线程新建WPF窗体(公用进度条窗体)
使用线程新建窗体 项目中需要一个公用的进度条窗体.大家知道在wpf中,有两个线程,一个是UI线程,另一个是监听线程(一直监听用户的输入).如果我们后台有阻塞UI线程的计算存在,那么界面上的比如进度条什么动态的UI都会被因为阻塞而静止不动.
1268 0
|
Windows
跨线程调用窗体控件
本文转载:http://www.csharpwin.com/csharpspace/11279r6763.shtml   执行耗时较长的操作时,使用多线程是明智之举,它可以提高程序 UI 的响应速度,使得一切运行显得更为快速。
666 0