Exemplo n.º 1
0
        public void WithFutureDate_WaitUntilDate()
        {
            var futureDate = DateTime.UtcNow.AddSeconds(1);

            ExclusiveTimer.WaitUntil(futureDate);
            Assert.Greater(DateTime.UtcNow, futureDate);
        }
Exemplo n.º 2
0
        public void WithTimeSpan_WaitThatTime()
        {
            var timeSpan   = TimeSpan.FromSeconds(1);
            var futureDate = DateTime.UtcNow.Add(timeSpan);

            ExclusiveTimer.Wait(timeSpan);
            Assert.Greater(DateTime.UtcNow, futureDate);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="FileLogger"/> class.
        /// </summary>
        /// <param name="path">The path.</param>
        /// <param name="dailyFile">if set to <c>true</c> [daily file].</param>
        public FileLogger(string path, bool dailyFile)
        {
            LogPath   = path;
            DailyFile = dailyFile;

            _timer = new ExclusiveTimer(
                async() => await WriteLogEntries().ConfigureAwait(false),
                TimeSpan.Zero,
                TimeSpan.FromSeconds(5));
        }
Exemplo n.º 4
0
        public void WithDefaultTimer_WaitsForOneIteration()
        {
            var i = 0;

            using (var timer = new ExclusiveTimer(() => i++, 0, 100))
            {
                Thread.Sleep(130);

                Assert.GreaterOrEqual(i, 1, "First iteration");

                Thread.Sleep(120);

                Assert.GreaterOrEqual(i, 2, "Second iteration");
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Initializes static members of the <see cref="Terminal"/> class.
        /// </summary>
        static Terminal()
        {
            lock (SyncLock)
            {
                if (DequeueOutputTimer != null)
                {
                    return;
                }

                if (IsConsolePresent)
                {
                    Console.CursorVisible = false;
                }

                // Here we start the output task, fire-and-forget
                DequeueOutputTimer = new ExclusiveTimer(DequeueOutputCycle);
                DequeueOutputTimer.Resume(OutputFlushInterval);
            }
        }