Пример #1
0
 protected override void FlushAsync(AsyncContinuation asyncContinuation)
 {
     if (!insightAsync.FlushQueue(TimeSpan.FromMilliseconds(50)))
     {
         System.Threading.Tasks.Task.Factory.StartNew(() =>
         {
             for (int i = 0; i < 3; ++i)
             {
                 InternalLogger.Trace("Waiting for AsyncLogger queue flush");
                 if (insightAsync.FlushQueue(TimeSpan.FromSeconds(5)))
                 {
                     InternalLogger.Trace("Completed AsyncLogger queue flush");
                     asyncContinuation(null);
                     return;
                 }
             }
             InternalLogger.Warn("Timeout while waiting for AsyncLogger queue flush");
             asyncContinuation(new TimeoutException("AsyncLogger queues are not empty"));
         }, System.Threading.CancellationToken.None, System.Threading.Tasks.TaskCreationOptions.None, System.Threading.Tasks.TaskScheduler.Default);
     }
     else
     {
         asyncContinuation(null);
     }
 }