我做了這個小碼:Awesomium多線程錯誤
private void button1_Click(object sender, EventArgs e)
{
Task t = new Task(() =>
{
tt += "a";
WebCore.Initialize(new WebConfig(), true);
WebView browser = WebCore.CreateWebView(1024, 768, WebViewType.Offscreen);
browser.DocumentReady += browser_DocumentReady;
browser.Source = new Uri("https://www.google.com/");
WebCore.Run();
});
t.Start();
Console.ReadLine();
}
static void browser_DocumentReady(object sender, UrlEventArgs e)
{
Console.WriteLine("DocumentReady");
}
嘗試做一些多線程與不同的網絡訪問量在同一時間做同樣的東西。
我每次按一次按鈕,它工作正常,並表明我「DocumentReady」在控制檯,但是當我按下它一次,它給了我這個錯誤:
System.InvalidOperationException: 'The WebCore is already initialized.'
這讓很多的因爲我之前已經初始化過一次,但有沒有辦法多次運行這個腳本?
您每次單擊按鈕時初始化「WebCore」。確保只初始化一次。例如在應用程序啓動或其他。或者你可以記得如果你之前用一個標誌初始化WebCore。 –
那麼,我必須在webview和其他Awesomium的東西的同一個線程中初始化webcore。 – Samhakadas
我看到awesomium似乎不是線程安全,看起來過時了。爲什麼不使用原生的'WebClient'或類似'ChromiumFX'? –