示例#1
0
        public void DefaultTest() {

            var messages = 0;
            var warnings = 0;
            var exceptions = 0;
            var task = new Monitor();

            task.Message += (sender, args) => {
                messages++;
            };
            task.Exception += (sender, args) => {
                exceptions++;
            };
            task.Warning += (sender, args) => {
                warnings++;
            };

            task.Execute(token => {
                task.OnMessage("m1");
                task.OnMessage("m2");
                task.OnMessage("m3");

                Thread.Sleep(200);

                task.OnWarning("w1");
                task.OnWarning("w2");

                task.OnException(new Exception());

            });

            Assert.AreEqual(true, task.IsRunning);
            task.Wait();

            Assert.AreEqual(3, messages);
            Assert.AreEqual(2, warnings);
            Assert.AreEqual(1, exceptions);
        }