在主线程上打上 [STAThread]标记就行
在main()最后一句 添加Application.Run(); 就能使控制台像窗体一样持久运行而不是阻塞啥也不干
[STAThread]
static void Main( string[ ] args )
{
WebBrowser webBrowser = new WebBrowser();
webBrowser.Navigate( "https://www.baidu.com/" );
webBrowser.DocumentCompleted += WebBrowser_DocumentCompleted;
//Application.Run( );
Console.WriteLine( "结束" );
}
private static void WebBrowser_DocumentCompleted( object sender , WebBrowserDocumentCompletedEventArgs e )
{
try
{
MessageBox.Show( "加载成功" );
}
finally
{
webBrowser.DocumentCompleted -= WebBrowser_DocumentCompleted;
}
}
把//Application.Run( );注释取消对比一下就知道
没有Application.Run( );时线程走到尾就结束了,事件因为加载需要时间就错过了,
同时关于事件触发两次通过在finally中取消事件,原文链接:https://www.icode9.com/content-1-333548.html