在創建jpg圖像時,此代碼使用線程。但是,Thread.Join()
有時會掛在創建特定圖像上。我研究過,似乎我應該使用BeginInvoke()
來代替。我怎麼能重寫下面的代碼使用Thread.Join()
到BeginInvoke()
?新線程永不完成等待WebBrowser
public Bitmap Generate()
{
var m_thread = new Thread(_Generate);
m_thread.SetApartmentState(ApartmentState.STA);
m_thread.Start();
m_thread.Join();
return m_Bitmap;
}
private void _Generate()
{
var browser = new WebBrowser {ScrollBarsEnabled = false };
browser.ScriptErrorsSuppressed = true;
browser.Navigate(m_Url);
browser.DocumentCompleted += WebBrowser_DocumentCompleted;
while (browser.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
browser.Dispose();
}
[WebBrowser控件在新線程中可能的重複](http://stackoverflow.com/questions/4269800/webbrowser-control-in-a-new-thread) – Blorgbeard 2015-02-11 03:25:21