2013-12-10 34 views

回答

2

您可以異步調用您的JavaScript函數(例如,在定時器上),但異步並不假定多線程,該函數仍將完全在主UI線程上執行。而且您無法爲此使用單獨的線程,因爲底層的WebBrowser ActiveX控件是STA COM對象。

如果您確實需要在JavaScript函數中執行冗長的UI更新工作,那麼正確的做法是限制更新邏輯並以多個步驟執行,每步異步執行一次,以保持UI線程響應。你可以使用setTimer或jQuery的delay來做到這一點。如解釋here所示,更好的結構化方法是使用jQuery Deferreds。

0

我們以某種方式解決了我們的問題,可能對其他人有用。 在對WebBrowser的調用之後,我們在新的UI線程中啓動一個新窗口,並把我們的新窗口放在前一個窗口(它的線程正忙於在WebBrowser中進行JavaScript計算),所以我們能夠以某種方式顯示進度條並加載頁面,同時在我們的HTML中進行重繪。

相關問題