void LoadupCache() { lock (BrowserStorage) { for (int i = BrowserStorage.Children.Count; i < cachesize; i++) { MCSWebBrowser browser = new MCSWebBrowser(); BrowserStorage.Children.Add(browser); browser.BrowserObjectAppeared += browser_BrowserObjectAppeared; browser.Navigate("about:blank"); // trigger the load of the browser instance } } }
private void WaitForBrowsersToInitialize() { int cacheCount, childrenCount; lock (cache) cacheCount = cache.Count; lock (BrowserStorage) childrenCount = BrowserStorage.Children.Count; DateTime dtTimeout = DateTime.Now + TimeSpan.FromSeconds(5); while (cacheCount == 0 && childrenCount > 0) { if (DateTime.Now > dtTimeout) { lock (BrowserStorage) { for (int i = 0; i < BrowserStorage.Children.Count; i++) { MCSWebBrowser b = BrowserStorage.Children[i] as MCSWebBrowser; if (b != null) { b.Navigate("about:blank"); // try again to get this going } } dtTimeout = DateTime.Now + TimeSpan.FromSeconds(5); } } // browsers initializing System.Windows.Forms.Application.DoEvents(); lock (cache) cacheCount = cache.Count; lock (BrowserStorage) childrenCount = BrowserStorage.Children.Count; } }