Ejemplo n.º 1
0
 private static void StatReset()
 {
     try
     {
         LockStat.AcquireWriterLock(5000);
         try
         {
             AppVars.Profile.Stat.LastReset     = DateTime.Now.Ticks;
             AppVars.Profile.Stat.LastUpdateDay = DateTime.Now.DayOfYear;
             AppVars.Profile.Stat.Traffic       = 0;
             AppVars.Profile.Stat.SavedTraffic  = 0;
             AppVars.Profile.Stat.Drop          = string.Empty;
             AppVars.Profile.Stat.ItemDrop.Clear();
             AppVars.Profile.Stat.XP     = 0;
             AppVars.Profile.Stat.NV     = 0;
             AppVars.Profile.Stat.FishNV = 0;
         }
         finally
         {
             LockStat.ReleaseWriterLock();
         }
     }
     catch (ApplicationException)
     {
     }
 }
Ejemplo n.º 2
0
        internal void UpdateSavedTrafficSafe(int addSavedTraffic)
        {
            if (InvokeRequired)
            {
                BeginInvoke((MethodInvoker)(() => UpdateSavedTrafficSafe(addSavedTraffic)));
                return;
            }

            try
            {
                LockStat.AcquireWriterLock(5000);
                try
                {
                    AppVars.Profile.Stat.SavedTraffic += addSavedTraffic;
                }
                finally
                {
                    LockStat.ReleaseWriterLock();
                }
            }
            catch (ApplicationException)
            {
            }

            menuitemStatItem1.Text = string.Concat("Сэкономлено трафика: ", TraficToString(AppVars.Profile.Stat.SavedTraffic));
            UpdateStatString();
        }
Ejemplo n.º 3
0
        private static void TimerTick(object sender, System.Timers.ElapsedEventArgs e)
        {
            if (!_ready)
            {
                return;
            }

            _timer.Stop();
            try
            {
                //Lock the stats list and build queries
                List <LockInfoItem> copyCache = null;
                lock (_cache)
                {
                    copyCache = _cache.ToList();
                    _cache.Clear();
                }

                using (var context = new DatastoreEntities(ConfigHelper.ConnectionString))
                {
                    foreach (var item in copyCache)
                    {
                        var newItem = new LockStat()
                        {
                            CurrentReadCount  = item.CurrentReadCount,
                            Elapsed           = item.Elapsed,
                            Failure           = item.Failure,
                            IsWriteLockHeld   = item.IsWriteLockHeld,
                            ThreadId          = item.ThreadId,
                            WaitingReadCount  = item.WaitingReadCount,
                            WaitingWriteCount = item.WaitingWriteCount,
                            DateStamp         = item.DateStamp,
                            TraceInfo         = item.TraceInfo,
                        };
                        context.AddItem(newItem);
                    }
                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                LoggerCQ.LogError(ex);
            }
            finally
            {
                _timer.Start();
            }
        }