菜鸟解决 必须将当前线程设置为单线程单元(STA)模式的报错
Posted any-kiss
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了菜鸟解决 必须将当前线程设置为单线程单元(STA)模式的报错相关的知识,希望对你有一定的参考价值。
private static string[] picAdd = new string[10];
private void button21_Click_1(object sender, EventArgs e) { Thread InvokeThread = new Thread(new ThreadStart(InvokeMethod)); InvokeThread.SetApartmentState(ApartmentState.STA); InvokeThread.Start(); InvokeThread.Join(); } private void InvokeMethod() { //定义控件数组 PictureBox[] mypic = { pictureBox1, pictureBox2, pictureBox3, pictureBox4, pictureBox5, pictureBox6, pictureBox7, pictureBox8, pictureBox9, pictureBox10 }; if (pictureBox10.Image == null) { for (n = 0; n < 10; n++) { FormMain.ShowPic(mypic[n]); picAdd[n] = FormMain.picAddress;//传递文件的物理路径 } } else { MessageBox.Show("已经有图片,不用再添加数据!"); } } public static void ShowPic(PictureBox picBox) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files(*.*)|*.*"; ofd.RestoreDirectory = true; if (ofd.ShowDialog() == DialogResult.OK) { picAddress = ofd.FileName; Image imge = Image.FromFile(picAddress); Bitmap bm = new Bitmap(imge, picBox.Width, picBox.Height); picBox.Image = bm; } }
以上是关于菜鸟解决 必须将当前线程设置为单线程单元(STA)模式的报错的主要内容,如果未能解决你的问题,请参考以下文章
ThreadThreading.TimerTask中ShowDialog()方法报错:“在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式”
ThreadThreading.TimerTask中ShowDialog()方法报错:“在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式”
在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式,请确保您的Main函数带有STAThreadAttribute标记。 多线程操作剪切板的时候。
选择目录,选择文件夹的COM组件问题。在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器