protected override void MonitoringThread()
        {
            base.MonitoringThread();

            var wmiObject = new ManagementObjectSearcher("select * from Win32_OperatingSystem");

            while (true)
            {
                try
                {
                    var memoryInfo = wmiObject.Get().Cast <ManagementObject>().Select(mo => new
                    {
                        FreePhysicalMemory     = double.Parse(mo["FreePhysicalMemory"].ToString()),
                        TotalVisibleMemorySize = double.Parse(mo["TotalVisibleMemorySize"].ToString())
                    }).FirstOrDefault();

                    if (memoryInfo != null)
                    {
                        var percent = (int)(((memoryInfo.TotalVisibleMemorySize - memoryInfo.FreePhysicalMemory) / memoryInfo.TotalVisibleMemorySize) * 100);
                        CurrentValues.AddOrUpdate("MEMORY", memoryItem => percent, (memoryItem, val) => percent);
                    }

                    Wait();
                }
                catch { }
            }
        }
        protected override void MonitoringThread()
        {
            base.MonitoringThread();

            var wmiObject = new ManagementObjectSearcher("select * from Win32_PerfFormattedData_PerfDisk_PhysicalDisk WHERE Name != '_Total'");

            while (true)
            {
                try
                {
                    var readWriteValues = wmiObject.Get().Cast <ManagementObject>().Select(mo => new
                    {
                        Name          = Convert.ToString(mo["Name"]),
                        DiskReadTime  = Convert.ToInt32(mo["PercentDiskReadTime"]),
                        DiskWriteTime = Convert.ToInt32(mo["PercentDiskWriteTime"])
                    });

                    foreach (var item in readWriteValues)
                    {
                        CurrentValues.AddOrUpdate("DISK_READ_" + (item.Name ?? "").Replace(" ", "_"), diskItem => item.DiskReadTime,
                                                  (diskItem, val) => item.DiskReadTime);
                        CurrentValues.AddOrUpdate("DISK_WRITE_" + (item.Name ?? "").Replace(" ", "_"), diskItem => item.DiskWriteTime,
                                                  (diskItem, val) => item.DiskWriteTime);
                    }

                    Wait();
                }
                catch { }
            }
        }
        protected override void MonitoringThread()
        {
            base.MonitoringThread();

            var wmiObject = new ManagementObjectSearcher("select * from Win32_PerfFormattedData_PerfOS_Processor");

            while (true)
            {
                try
                {
                    var cpuCoresInfo = wmiObject.Get().Cast <ManagementObject>().Select(mo => new
                    {
                        CoreName    = Convert.ToString(mo["Name"]),
                        LoadPercent = Convert.ToInt32(mo["PercentProcessorTime"])
                    }).ToList();

                    _cpuCount = cpuCoresInfo.Count();

                    foreach (var coreInfo in cpuCoresInfo)
                    {
                        CurrentValues.AddOrUpdate(coreInfo.CoreName, corename => coreInfo.LoadPercent, (corename, val) => coreInfo.LoadPercent);
                    }

                    Wait();
                }
                catch { }
            }
        }
예제 #4
0
        protected override void MonitoringThread()
        {
            base.MonitoringThread();

            var wmiObject = new ManagementObjectSearcher("select * from Win32_PerfFormattedData_Tcpip_NetworkInterface");

            while (true)
            {
                try
                {
                    var networkValues = wmiObject.Get().Cast <ManagementObject>().Select(mo => new
                    {
                        BytesReceived = Convert.ToInt32(mo["BytesReceivedPersec"]),
                        BytesSent     = Convert.ToInt32(mo["BytesSentPersec"])
                    }).ToList();

                    if (networkValues.Any())
                    {
                        //receive
                        var recieveRawValue = networkValues.Sum(x => x.BytesReceived);

                        var recieveFormattedValue = SizeHelper.GetSizeDisplay(recieveRawValue);

                        CurrentValues.AddOrUpdate("NETWORK_RECEIVE", item => (int)recieveFormattedValue.Item1, (networkItem, val) => (int)recieveFormattedValue.Item1);
                        DisplayValues.AddOrUpdate("NETWORK_RECEIVE", item => recieveFormattedValue.Item2, (networkItem, val) => recieveFormattedValue.Item2);

                        //send
                        var sendRawValue = networkValues.Sum(x => x.BytesSent);

                        var sendFormattedValue = SizeHelper.GetSizeDisplay(sendRawValue);

                        CurrentValues.AddOrUpdate("NETWORK_SEND", item => (int)sendFormattedValue.Item1, (networkItem, val) => (int)sendFormattedValue.Item1);
                        DisplayValues.AddOrUpdate("NETWORK_SEND", item => sendFormattedValue.Item2, (networkItem, val) => sendFormattedValue.Item2);
                    }

                    Wait();
                }
                catch { }
            }
        }