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

在子线程中使用 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();
        }
    }

你可能感兴趣的:(dialog)