.net winform 調用類中的webbrowser 報錯:當前線程不在單線程單元中,因此無法實例化 ActiveX


 

遇到這個惡心的問題糾纏得不要不要的,大家遇到了的話希望不要走彎路,經過這個折騰讓我有點懷疑人生了。哈哈哈

解決代碼如下:

//插入一個新線程用於處理驗證碼
Thread thd = new Thread(new ParameterizedThreadStart(ShowNotify));
thd.SetApartmentState(ApartmentState.STA);//關鍵設置
thd.IsBackground = true;
thd.Start();
thd.Join();//主線程等待,臨時線程開始處理

//臨時線程結束,主線程繼續運行

 

/// <summary>
/// 彈出驗證碼提示框
/// </summary>
/// <param name="obj"></param>
private void ShowNotify(object obj)
{
var notify = new frmNotify(this);
diaResult = notify.ShowDialog();
strVcode = notify.StrVcode.Trim();
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 類中調用界面ActiveX控件報錯當前線程不在單線程單元中因此無法實例化 ActiveX 控件的解決辦法 當前線程不在單線程單元中,因此無法實例化 ActiveX 控件 在可以調用 OLE 之前,必須將當前線程設置為單線程單元(STA)模式 在可以調用 OLE 之前,必須將當前線程設置為單線程單元(STA)模式 異常錯誤:在可以調用 OLE 之前,必須將當前線程設置為單線程單元(STA)模式 在可以調用 OLE 之前,必須將當前線程設置為單線程單元(STA)模式,請確保您的Main函數帶有STAThreadAttribute標記。 多線程操作剪切板的時候。 在可以調用OLE之前,必須將當前線程設置為單線程單元(STA)模式,請確保您的Main函數帶有STAThreadAttribute 如何解決C#異常:必須先將當前線程設置為單線程單元(STA)模式,然后才能進行OLE調用,請確保你的Main函數已在其上標記了STAThreadAttribute 解決“System.Threading.ThreadStateException:“在可以調用 OLE 之前,必須將當前線程設置為單線程單元(STA)模式。請確保您的 Main 函數帶有 STAThreadAttribute 標記。 只有將調試程序附加到該進程才會引發此異常”的異常 C#解決“System.Threading.ThreadStateException:“在可以調用 OLE 之前,必須將當前線程設置為單線程單元(STA)模式。請確保您的 Main 函數帶有 STAThreadAttribute 標記。 只有將調試程序附加到該進程才會引發此異常”的異常
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM