2009-04-28 65 views
0

我正在第二個線程中運行窗體。如果我按Ctrl-C複製剪貼板上的文本,我會得到一個異常,「當前的線程必須設置爲單線程單元(STA)才能進行OLE調用(使用剪貼板明顯涉及OLE)​​,當我在其他線程中運行表單時,如何設置STAThread?

你之前把[STAThread]我的線程PROC,這是我的第二個線程的入口點也的工作。什麼工作?

[STAThread] 
private void MyFormThreadproc(object o) 
{ 
    form = new MyForm(); 
    Application.Run(form); 
} 

回答

7

當您創建線程,調用SetApartmentState()方法啓動它,你不能爲線程池線程做這個。

例如:

Thread thread = new Thread(threadAction); 
thread.SetApartmentState(ApartmentState.STA); 
thread.Start(); 
+0

它工作。謝謝。 – 2009-04-28 16:31:49

相關問題