コード例 #1
0
        public void DisposeExplicitTest()
        {
            var errors = new List <Exception>();

            var runner = new ThreadRunner("TEST", (ex) => { errors.Add(ex); });

            runner.Run(() => { throw new Exception("First"); });
            runner.Dispose();
            runner.Dispose(() => { throw new Exception("Already Disposed"); });

            Assert.AreEqual(1, errors.Count);
            Assert.AreEqual("First", errors[0].Message);
        }
コード例 #2
0
        public void CatcherTest()
        {
            var errors = new List <Exception>();

            var runner = new ThreadRunner("TEST", (ex) =>
            {
                errors.Add(ex);
                throw new Exception("Catcher");
            });

            runner.Run(() => { throw new Exception("First"); });
            runner.Run(() => { throw new Exception("Second"); });
            runner.Dispose();

            Assert.AreEqual(2, errors.Count);
            Assert.AreEqual("First", errors[0].Message);
            Assert.AreEqual("Second", errors[1].Message);
        }
コード例 #3
0
        public void IdleTest()
        {
            var errors = new List <Exception>();
            var flag   = new AutoResetEvent(false);

            var runner = new ThreadRunner("TEST", (ex) =>
            {
                errors.Add(ex);
                flag.Set();
            }, () =>
            {
                throw new Exception("Idle");
            });

            flag.WaitOne();
            runner.Dispose();

            Assert.IsTrue(errors.Count > 0);
            Assert.AreEqual("Idle", errors[0].Message);
        }
コード例 #4
0
 public void Dispose()
 {
     //remove reference, dispose
     runner.Dispose(appenders.Clear);
 }