示例#1
0
        /// <summary>
        /// Initialize a new RamController object
        /// </summary>
        /// <param name="ramUsageAddedEvent">An event to indicate that RamUsage object has been added</param>
        /// <param name="ramClearingCompletedEvent">An event to indicate that the RAM has been cleared</param>
        /// <param name="ramUpdateTimerInterval">The interval for which RAM usage statistics should be updated</param>
        /// <param name="enableRamStatistics">True if RamUsage objects should be kept in memory, otherwise false</param>
        /// <param name="maxUsageHistory">The total amount of RamUsage objects that should be stored for historical reasons</param>
        /// <param name="logController">The LogController object that can be used to add logs</param>
        internal RamController(RamUsageAdded ramUsageAddedEvent, RamClearingCompleted ramClearingCompletedEvent, int ramUpdateTimerInterval, bool enableRamStatistics, int maxUsageHistory, LogController logController)
        {
            _logController = logController ?? throw new ArgumentNullException(nameof(logController));
            _logController.AddLog(new ApplicationLog("Initializing RamController"));

            if (ramUpdateTimerInterval <= 0)
            {
                throw new ArgumentException("Timer interval cannot be less than or equal to zero!");
            }
            RamUsageAddedEvent        = ramUsageAddedEvent;
            RamClearingCompletedEvent = ramClearingCompletedEvent;

            RamSavings = 0;

            _info                = new ComputerInfo();
            _ramUsageHistory     = new List <RamUsage>();
            EnableRamStatistics  = enableRamStatistics;
            MaxUsageHistoryCount = maxUsageHistory;
            _ramOptimizer        = new RamOptimizer(_logController);
            EmptyWorkingSets     = true;
            ClearStandbyCache    = true;
            ClearFileSystemCache = true;

            _ramTimer          = new Timer();
            _ramTimer.Elapsed += OnTimedEvent;
            _ramTimer.Interval = ramUpdateTimerInterval;
            _ramTimer.Enabled  = false;

            _logController.AddLog(new ApplicationLog("Done initializing RamController"));
        }
示例#2
0
        /// <summary>
        /// Initialize a new RamController object
        /// </summary>
        /// <param name="updateGuiStatisticsEvent">An event to indicate that a GUI update should occur</param>
        /// <param name="ramClearingCompletedEvcent">An event to indicate that the RAM has been cleared</param>
        /// <param name="ramUpdateTimerInterval">The interval for which RAM usage statistics should be updated</param>
        /// <param name="logController">The LogController object that can be used to add logs</param>
        internal RamController(UpdateGuiStatistics updateGuiStatisticsEvent, RamClearingCompleted ramClearingCompletedEvcent, int ramUpdateTimerInterval, LogController logController)
        {
            _logController = logController ?? throw new ArgumentNullException(nameof(logController));
            _logController.AddLog(new ApplicationLog("Initializing RamController"));

            if (ramUpdateTimerInterval <= 0)
            {
                throw new ArgumentException("Timer interval cannot be less than or equal to zero!");
            }
            UpdateGuiStatisticsEvent   = updateGuiStatisticsEvent ?? throw new ArgumentNullException(nameof(updateGuiStatisticsEvent));
            RamClearingCompletedEvcent = ramClearingCompletedEvcent ?? throw new ArgumentNullException(nameof(ramClearingCompletedEvcent));

            RamSavings = 0;

            _info = new ComputerInfo();

            _ramOptimizer        = new RamOptimizer(_logController);
            EmptyWorkingSets     = true;
            ClearStandbyCache    = true;
            ClearFileSystemCache = true;

            _ramTimer          = new Timer();
            _ramTimer.Elapsed += OnTimedEvent;
            _ramTimer.Interval = ramUpdateTimerInterval;
            _ramTimer.Enabled  = false;

            _logController.AddLog(new ApplicationLog("Done initializing RamController"));
        }