異常:
在可以調用 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(); } }