最近做一個蛋疼的東西就是C#調用windows API 來操作一個攝像頭,自動處理一些東西。要用到剪切板復制 粘貼功能,即 Clipboard.SetDataObject(filedic, true)等。
本來測試的時候,通過主線程 按鈕點擊開始的時候沒有任何問題。但是把整個過程放在一個單獨一個線程的時候一到復制的時候就報錯:
“在可以調用 OLE 之前,必須將當前線程設置為單線程單元(STA)模式,請確保您的Main函數帶有STAThreadAttribute標記”。
解決辦法如下:
在main函數的入口點:
/// <summary> /// 應用程序的主入口點。 /// </summary> [STAThread] private static void Main(String[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new LoginForm()); }
參考: