解决“System.Threading.ThreadStateException:“在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试程序附加到该进程才会引发此异常”的异常
解决方法:
添加如下:
代码:
Thread t = new Thread((ThreadStart)(() => { SaveFileDialog saveqrimg = new SaveFileDialog(); saveqrimg.Title = "二维码图片保存"; saveqrimg.Filter = @"jpeg|*.jpg|bmp|*.bmp|gif|*.gif"; if (saveqrimg.ShowDialog() == DialogResult.OK) { this.pictureBox1.Image.Save(saveqrimg.FileName, System.Drawing.Imaging.ImageFormat.Jpeg); MessageBox.Show("保存成功!"); } //else if(saveqrimg.ShowDialog() == DialogResult.Cancel) //{ // MessageBox.Show("已取消保存!"); //} else { MessageBox.Show("保存失败!"); } } )); t.SetApartmentState(ApartmentState.STA); t.Start(); t.Join();