Artemis.Modules.Effects.WindowsProfile.WindowsProfileModel.UpdateCpu C# (CSharp) Method

UpdateCpu() private method

private UpdateCpu ( WindowsProfileDataModel dataModel ) : void
dataModel WindowsProfileDataModel
return void
        private void UpdateCpu(WindowsProfileDataModel dataModel)
        {
            if ((_cores == null) || (_overallCpu == null))
                return;

            // CPU is only updated every 15 frames, the performance counter gives 0 if updated too often
            _cpuFrames++;
            if (_cpuFrames < 16)
                return;

            _cpuFrames = 0;

            // Update cores, not ideal but data models don't support lists. 
            if (_cores[0] != null)
                dataModel.Cpu.Core1Usage = (int) _cores[0].NextValue();
            if (_cores[1] != null)
                dataModel.Cpu.Core2Usage = (int) _cores[1].NextValue();
            if (_cores[2] != null)
                dataModel.Cpu.Core3Usage = (int) _cores[2].NextValue();
            if (_cores[3] != null)
                dataModel.Cpu.Core4Usage = (int) _cores[3].NextValue();
            if (_cores[4] != null)
                dataModel.Cpu.Core5Usage = (int) _cores[4].NextValue();
            if (_cores[5] != null)
                dataModel.Cpu.Core6Usage = (int) _cores[5].NextValue();
            if (_cores[6] != null)
                dataModel.Cpu.Core7Usage = (int) _cores[6].NextValue();
            if (_cores[7] != null)
                dataModel.Cpu.Core8Usage = (int) _cores[7].NextValue();

            //From Ted - Let's get overall RAM and CPU usage here           
            dataModel.Cpu.TotalUsage = (int) _overallCpu.NextValue();

            var phav = PerformanceInfo.GetPhysicalAvailableMemoryInMiB();
            var tot = PerformanceInfo.GetTotalMemoryInMiB();
            var percentFree = phav/(decimal) tot*100;
            var percentOccupied = 100 - percentFree;

            dataModel.Performance.RAMUsage = (int) percentOccupied;
        }