public void Dispose() { ProxyHelper.SetProxy(null); if (browserWrapperIEImpl != null) { try { browserWrapperIEImpl.Close(); } catch { } try { browserWrapperIEImpl.Dispose(); } catch { } try { browserWrapperIEImpl.Destroy(); } catch { } } browserWrapperIEImpl = null; }
public BrowserWrapperIEImpl() { lock (_lock) { if (browserWrapperIEImpl == null) { _context = AsyncOperationManager.SynchronizationContext; using (ManualResetEvent mre = new ManualResetEvent(false)) { Thread t = new Thread((ThreadStart) delegate { browserWrapperIEImpl = new _BrowserWrapperIEImpl(this); mre.Set(); Application.Run(); }); t.Name = "IEWrapperMessageLoop"; t.IsBackground = true; t.SetApartmentState(ApartmentState.STA); t.Start(); mre.WaitOne(); } } } }