-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProcessStats.cs
More file actions
94 lines (83 loc) · 2.14 KB
/
ProcessStats.cs
File metadata and controls
94 lines (83 loc) · 2.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
using System;
using System.Diagnostics;
namespace MyProcessUsage
{
public class ProcessStats : ObservableObject
{
private PerformanceCounter _perfCpu;
private PerformanceCounter _perfMemory;
public void NextValue()
{
if (_perfCpu == null)
{
_perfCpu = new PerformanceCounter("Process", "% Processor Time", m_strName, true);
_perfMemory = new PerformanceCounter("Process", "Working Set - Private", m_strName);
}
if (!string.IsNullOrEmpty(m_strName))
{
try
{
m_fCPUUsage = _perfCpu.NextValue();
m_uiMemoryUsage = (uint)_perfMemory.NextValue();
}
catch (InvalidOperationException)
{
//deal with exception
}
}
}
private bool _bSave;
public bool m_bSave
{
get
{
return _bSave;
}
set
{
_bSave = value;
NotifyPropertyChanged(nameof(m_bSave));
}
}
private string _strName;
public string m_strName
{
get
{
return _strName;
}
set
{
_strName = value;
NotifyPropertyChanged(nameof(m_strName));
}
}
private uint _uiMemoryUsage;
public uint m_uiMemoryUsage
{
get
{
return _uiMemoryUsage;
}
set
{
_uiMemoryUsage = value;
NotifyPropertyChanged(nameof(m_uiMemoryUsage));
}
}
private float _fCPUUsage;
public float m_fCPUUsage
{
get
{
return _fCPUUsage;
}
set
{
_fCPUUsage = value;
NotifyPropertyChanged(nameof(m_fCPUUsage));
}
}
public long m_lLastSaved { get; set; }
}
}