コード例 #1
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);
        }
コード例 #2
0
        public void DisposeUsingTest()
        {
            var errors = new List <Exception>();

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

            Assert.AreEqual(1, errors.Count);
            Assert.AreEqual("First", errors[0].Message);
        }
コード例 #3
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);
        }
コード例 #4
0
 public void AddAppender(ILogAppender appender)
 {
     runner.Run(() => appenders.Add(appender.Append));
 }