【求教】线程 c# savedialog 使用问题

时间:2021-11-20 14:32:18
我新开了一个线程 在这个线程启动窗口 f2 ,可以正常启动,然后点击窗口的按钮弹出一个保存对话框。这个时侯会弹出错误。说是什么单线程,需要加stathread属性 但是我看mian函数上已经加这条属性了 求教
错误大概是 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常。

3 个解决方案

#1


我顶啊顶啊

#2



    private void button1_Click(object sender, EventArgs e)
    {
        Thread myThread = new Thread(this.MyThread);
        myThread.SetApartmentState(ApartmentState.STA);     //<--------
        myThread.Start();
    }

    void MyThread()
    {
        OpenFileDialog dlg = new OpenFileDialog();
        dlg.ShowDialog();
    }

#3


void MyThread()返回的是空类型
如何获取里面的值捏

#1


我顶啊顶啊

#2



    private void button1_Click(object sender, EventArgs e)
    {
        Thread myThread = new Thread(this.MyThread);
        myThread.SetApartmentState(ApartmentState.STA);     //<--------
        myThread.Start();
    }

    void MyThread()
    {
        OpenFileDialog dlg = new OpenFileDialog();
        dlg.ShowDialog();
    }

#3


void MyThread()返回的是空类型
如何获取里面的值捏