异常:
在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常。
方法1:
class Program { /// <summary> /// 图片资料文件同步 /// </summary> /// <param name="args"></param> [STAThread] //加这个属性,创建并进入单元 static void Main(string[] args) { Form1 f1 = new Form1(); f1.ShowDialog(); Console.Read(); } public static void f1() { Form1 f1 = new Form1(); f1.ShowDialog(); } }
方法2:
class Program { /// <summary> /// 图片资料文件同步 /// </summary> /// <param name="args"></param> static void Main(string[] args) { Thread newThread = new Thread(f1); //newThread.SetApartmentState(ApartmentState.MTA); newThread.SetApartmentState(ApartmentState.STA);//设置这个参数,指示应用程序的COM线程模型 是 单线程单元 newThread.Start(); Console.Read(); } public static void f1() { Form1 f1 = new Form1(); f1.ShowDialog(); } }