解决“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(); 

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 C#解决“System.Threading.ThreadStateException:“在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试程序附加到该进程才会引发此异常”的异常 选择目录,选择文件夹的COM组件问题。在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常。 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式,请确保您的Main函数带有STAThreadAttribute标记。 多线程操作剪切板的时候。 在可以调用OLE之前,必须将当前线程设置为单线程单元(STA)模式,请确保您的Main函数带有STAThreadAttribute 如何解决C#异常:必须先将当前线程设置为单线程单元(STA)模式,然后才能进行OLE调用,请确保你的Main函数已在其上标记了STAThreadAttribute 异常错误:在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式 类中调用界面ActiveX控件报错当前线程不在单线程单元中因此无法实例化 ActiveX 控件的解决办法 Python threading 单线程 timer重复调用函数
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM