public void InvokeBrowser(o2Mate.DisplayElement de, System.Windows.Forms.WebBrowser web) { try { this.buffer.Enqueue(de); if (System.Threading.Monitor.TryEnter(web)) { web.Invoke(this.display, web); System.Threading.Monitor.Exit(web); } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); } }
private void Consume(System.Windows.Forms.WebBrowser web) { while (this.buffer.Count > 0) { if (this.pp.IsCanceled) { break; } o2Mate.DisplayElement de = this.buffer.Dequeue(); this.pp.SetProgress(de.Percent); this.pp.SetText(String.Format("Traitement {0}", de.ObjectType)); de.InvokeBrowser(web); System.Windows.Forms.Application.DoEvents(); } if (this.pp.IsCanceled) { this.Cloture(web); } }