2016-02-03 196 views
0
List<string> listbox = new List<string>(); 

private void Form1_Load(object sender, EventArgs e) 
{ 
    Process[] processes = Process.GetProcesses(); 

    foreach (var proc in processes) 
    { 
     if (!string.IsNullOrEmpty(proc.ProcessName)) 
      listbox.Add(proc.ProcessName); 
    } 
    listBox1.DataSource = listbox; 
} 

虽然使用代码刷新列表框的项目,我得到一个列表框(listBox1中),这显示了所有当前正在运行的进程,但我能调整该代码/添加,使其刷新列表框每5秒钟一次,因为它只显示打开应用程序时打开的程序,并且如果应用程序在打开时关闭/打开,它将不会添加到ListBox,因此为什么我希望它每隔5秒左右。每隔几秒钟,C#

回答

0

可以使用Timer这样的:

private Timer m_Timer; 

private void Form1_Load(object sender, EventArgs e) 
{ 
    RefreshProcesses(); 

    m_Timer = new Timer(); 

    m_Timer.Interval = 5000; 
    m_Timer.Tick += timer_Tick; 
    m_Timer.Start(); 
} 

void timer_Tick(object sender, EventArgs e) 
{ 
    RefreshProcesses(); 
} 

private void RefreshProcesses() 
{ 
    List<string> listbox = new List<string>(); 

    Process[] processes = Process.GetProcesses(); 

    foreach (var proc in processes) 
    { 
     if (!string.IsNullOrEmpty(proc.ProcessName)) 
      listbox.Add(proc.ProcessName); 
    } 
    listBox1.DataSource = listbox; 
} 
+0

这完美的作品,谢谢。 – Cris