異常錯誤:在能夠調用 OLE 以前,必須將當前線程設置爲單線程單元(STA)模式

最近作一個蛋疼的東西就是C#調用windows API 來操做一個攝像頭,自動處理一些東西。要用到剪切板複製 粘貼功能,即 Clipboard.SetDataObject(filedic, true)等。html

原本測試的時候,經過主線程 按鈕點擊開始的時候沒有任何問題。可是把整個過程放在一個單獨一個線程的時候一到複製的時候就報錯:windows

「在能夠調用 OLE 以前,必須將當前線程設置爲單線程單元(STA)模式,請確保您的Main函數帶有STAThreadAttribute標記」。函數

解決辦法以下:測試

在main函數的入口點:spa

        /// <summary>
        /// 應用程序的主入口點。
        /// </summary>
        [STAThread]
        private static void Main(String[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new LoginForm());
        } 

 

 

參考:線程

http://www.javashuo.com/article/p-kswlewnk-hh.htmlcode

https://www.cnblogs.com/boskg/p/5169477.htmlorm

相關文章
相關標籤/搜索