2016-02-03 194 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