コード例 #1
0
        private static void StatsSenderThread(string vmName)
        {
            DateTime utcNow    = DateTime.UtcNow;
            long     fromTicks = TimelineStatsSender.TicksInSeconds();

            while (true)
            {
                try
                {
                    TimelineStatsSender.sEventQueueMutex.WaitOne();
                    if (TimelineStatsSender.sEventQueue.Count <= 0)
                    {
                        TimelineStatsSender.sEventQueueMutex.ReleaseMutex();
                        Thread.Sleep(1000);
                    }
                    else
                    {
                        TimelineStatsSender.TimelineEvent timelineEvent = TimelineStatsSender.sEventQueue.Dequeue();
                        TimelineStatsSender.sEventQueueMutex.ReleaseMutex();
                        TimelineStatsSender.SendTimelineStats(timelineEvent.Time, timelineEvent.S1, timelineEvent.Ticks - fromTicks, timelineEvent.S2, timelineEvent.S3, "", "", "", "", "", "", utcNow, timelineEvent.Time, fromTicks, timelineEvent.Ticks, vmName);
                    }
                }
                catch (Exception ex)
                {
                    Logger.Warning("Exception in sending timeline stats: " + ex.ToString());
                    Thread.Sleep(1000);
                }
            }
        }
コード例 #2
0
 public TimelineEvent(string evt, string s1, string s2, string s3)
 {
     this.Time  = DateTime.UtcNow;
     this.Ticks = TimelineStatsSender.TicksInSeconds();
     this.Event = evt;
     this.S1    = s1;
     this.S2    = s2;
     this.S3    = s3;
 }