Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Thread checkProcess;
- List<PerformanceCounter> pcs;
- private void btnMonitor_Click(object sender, EventArgs e)
- {
- List<Process> proc = new List<Process>();
- foreach (Process p in Process.GetProcesses())
- {
- if (p.ProcessName.IndexOf(txtProcessName.Text) > -1)
- {
- proc.Add(p);
- }
- }
- pcs = new List<PerformanceCounter>();
- int k = 0;
- foreach (Process p in proc)
- {
- pcs.Add(new PerformanceCounter("Process", "% Processor Time", k > 0 ?
- string.Format("{0}#{1}", p.ProcessName, k) : p.ProcessName, true));
- lstbxPC.Items.Add(k > 0 ?
- string.Format("{0}#{1}", p.ProcessName, k) : p.ProcessName);
- k++;
- }
- checkProcess = new Thread(CheckProcess);
- checkProcess.Start();
- }
- private void CheckProcess()
- {
- int temp = 0;
- while (true)
- {
- temp = 0;
- foreach (PerformanceCounter pc in pcs)
- {
- if (temp < pc.NextValue())
- {
- temp = (int)pc.NextValue();
- }
- }
- // Set the label in a ThreadSafe way. This does work
- SetControlPropertyThreadSafe(lblCPU, "Text", Convert.ToString(temp) + "%");
- Thread.Sleep(1000);
- }
- }
- private void btnMonitor_Click(object sender, EventArgs e)
- {
- var proc = Process.GetProcesses().Where(p => p.ProcessName.IndexOf(this.txtProcessName.Text) > -1);
- var k = 1;
- var appendSuffix = proc.Count() > 1;
- this.pcs = new List<PerformanceCounter>();
- foreach (var p in proc)
- {
- this.pcs.Add(new PerformanceCounter(
- "Process",
- "% Processor Time",
- appendSuffix ? string.Format("{0}#{1}", p.ProcessName, k) : p.ProcessName,
- true));
- this.lstbxPC.Items.Add(appendSuffix ? string.Format("{0}#{1}", p.ProcessName, k) : p.ProcessName);
- k++;
- }
- this.checkProcess = new Thread(this.CheckProcess);
- this.checkProcess.Start();
- }
- private void CheckProcess()
- {
- while (true)
- {
- var temp = 0;
- foreach (var pc in this.pcs)
- {
- var nextValue = pc.NextValue();
- if (temp < nextValue)
- {
- temp = (int)nextValue;
- }
- }
- // Set the label in a ThreadSafe way. This does work.
- SetControlPropertyThreadSafe(lblCPU, "Text", Convert.ToString(temp) + "%");
- Thread.Sleep(1000);
- }
- }
Add Comment
Please, Sign In to add comment