Exemplo n.º 1
0
 public void FlushAllTargets(IFlushingThreadData <int> flushingThreadData)
 {
     lock (threadLocker)
     {
         threadNumbersSortedSet.Add(flushingThreadData.Data);
         while (threadNumbersSortedSet.Min != flushingThreadData.Data)
         {
             Monitor.Wait(threadLocker);
         }
         WaitAllTasksToFlush();
         for (int i = 0; i < loggerTargets.Length; i++)
         {
             //loggerTargets[i].Flush(flushingThreadData.LogsInfo);
             flushingTasks[i] = loggerTargets[i].FlushAsync(flushingThreadData.LogsInfo);
         }
         threadNumbersSortedSet.Remove(flushingThreadData.Data);
         Monitor.Pulse(threadLocker);
     }
 }
Exemplo n.º 2
0
        private void WriteLogsToTargets(Object flushingThreadDataObj)
        {
            IFlushingThreadData <int> flushingThreadData = (IFlushingThreadData <int>)flushingThreadDataObj;

            loggerTargetFlushingThreadPool.FlushAllTargets(flushingThreadData);
        }