2012-07-18 75 views
0
public void processloader(object temp) 
{ 

    Process[] processes = null; 
    try 
    { 
     processes = Process.GetProcesses(); 
    } 

    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
     Application.Exit(); 
     return; 
    } 
    listView1.BeginUpdate(); 
    listView1.Clear(); 
    int threadscount = 0; 
    listView1.Items.Clear(); 
    foreach (Process p in processes) 
    { 
     try 
     { 
      string[] prcdetails = new string[] { p.ProcessName, p.Id.ToString(), p.StartTime.ToShortTimeString(), p.PriorityClass.ToString(), (p.WorkingSet64/1048576).ToString() + "Mb", p.Threads.Count.ToString() }; 
      ListViewItem proc = new ListViewItem(prcdetails); 
      listView1.Items.Add(proc); 
      threadscount += p.Threads.Count; 
     } 
     catch { Console.WriteLine(p); } 
    } 
    statusBar1.Panels[0].Text = "Processes : " + processes.Length.ToString(); 
    statusBar1.Panels[1].Text = "Threads : " + (threadscount + 1).ToString(); 
    listView1.EndUpdate(); 
    listView1.Refresh(); 


} 

这里是refreher块,我每秒通过使用System.threading.timer()调用这个函数。我需要像原始taskmanager刷新功能的解决方案,任何人都可以为此提供帮助吗?请提供一些示例代码。提前致谢!当新进程进入时自动刷新列表视图

+0

可能重复[C#的Process Monitor(http://stackoverflow.com/questions/1986249/c-sharp-process-monitor) – 2012-07-18 17:05:43

回答