Ejemplo n.º 1
0
        public void Can_run_in_background()
        {
            const int ticks = 3;
            var       block = new ManualResetEvent(false);

            RegisterMetrics();

            ThreadPool.QueueUserWorkItem(
                s =>
            {
                using (var reporter = new FileReporter(_filename, _metrics))
                {
                    reporter.Start(3, TimeUnit.Seconds);
                    while (true)
                    {
                        Thread.Sleep(1000);
                        var runs = reporter.Runs;
                        if (runs == ticks)
                        {
                            block.Set();
                        }
                    }
                }
            });

            block.WaitOne(TimeSpan.FromSeconds(5));
        }
Ejemplo n.º 2
0
        public void Can_stop()
        {
            var block = new ManualResetEvent(false);

            RegisterMetrics();

            ThreadPool.QueueUserWorkItem(
                s =>
            {
                var reporter = new FileReporter(Path.GetTempFileName(), _metrics);
                reporter.Start(1, TimeUnit.Seconds);
                reporter.Stopped += delegate { block.Set(); };
                Thread.Sleep(2000);
                reporter.Stop();
            });

            block.WaitOne();
        }