.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();
}

原文地址:https://www.cnblogs.com/dadongzuo/p/6412191.html