public void TestRandomForced() { ForcedEventHandlerForControl <VerifiedReceiptEventArgs> handler; handler = new ForcedEventHandlerForControl <VerifiedReceiptEventArgs>(_form, VerifiedReceipt); handler = new ForcedEventHandlerForControl <VerifiedReceiptEventArgs>(_form, new VerifiedReceiptEventHandler(handler.EventHandler)); VerifiedReceiptEventArgs args = new VerifiedReceiptEventArgs(); _form.Shown += delegate(object s, EventArgs e) { System.Threading.Thread.Sleep(100); _form.Close(); }; _thread.Start(); int total = 0, countOnThread = 0, countOffThread = 0; try { for (total = 1; total < 1000000; total++) { handler.EventHandler(null, args.Reset()); Assert.IsTrue(args.Received); if (args.OnThread) { countOnThread++; } else { countOffThread++; } //Assert.IsTrue(args.OnThread); //Console.Error.WriteLine("Threaded = {0}", args.OnThread); if (_form.IsDisposed) { break; } } Assert.AreEqual(total, countOnThread + countOffThread); Assert.IsTrue(_form.IsDisposed); Assert.AreNotEqual(0, countOnThread); Assert.AreNotEqual(0, countOffThread); } catch (Exception e) { Console.Error.WriteLine(e.ToString()); throw; } finally { _thread.Join(); } }
public void TestRandomForced() { ForcedEventHandlerForControl<VerifiedReceiptEventArgs> handler; handler = new ForcedEventHandlerForControl<VerifiedReceiptEventArgs>(_form, VerifiedReceipt); handler = new ForcedEventHandlerForControl<VerifiedReceiptEventArgs>(_form, new VerifiedReceiptEventHandler(handler.EventHandler)); VerifiedReceiptEventArgs args = new VerifiedReceiptEventArgs(); _form.Shown += delegate(object s, EventArgs e) { System.Threading.Thread.Sleep(100); _form.Close(); }; _thread.Start(); int total = 0, countOnThread = 0, countOffThread = 0; try { for (total = 1; total < 1000000; total++) { handler.EventHandler(null, args.Reset()); Assert.IsTrue(args.Received); if (args.OnThread) countOnThread++; else countOffThread++; //Assert.IsTrue(args.OnThread); //Console.Error.WriteLine("Threaded = {0}", args.OnThread); if (_form.IsDisposed) break; } Assert.AreEqual(total, countOnThread + countOffThread); Assert.IsTrue(_form.IsDisposed); Assert.AreNotEqual(0, countOnThread); Assert.AreNotEqual(0, countOffThread); } catch (Exception e) { Console.Error.WriteLine(e.ToString()); throw; } finally { _thread.Join(); } }