每隔几秒刷新ListBox项C#

时间:2016-02-03 00:27:39

标签: c# listbox visual-studio-2015

<?php
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

require(__DIR__ . '/vendor/autoload.php');
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/common/config/bootstrap.php');
require(__DIR__ . '/config/bootstrap.php');

$config = yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/common/config/main.php'),
require(__DIR__ . '/common/config/main-local.php'),
require(__DIR__ . '/config/main.php'),
require(__DIR__ . '/config/main-local.php')
);

$application = new yii\web\Application($config);
$application->run();

在使用该代码时,我得到一个ListBox(listBox1),它显示了所有当前正在运行的进程,但是我可以调整这个代码/ add以使其每5秒刷新一次ListBox,因为它只显示程序在应用程序打开时打开,如果应用程序在打开时关闭/打开,它将不会被添加到ListBox,因此我希望它每隔5秒左右刷新一次。

1 个答案:

答案 0 :(得分: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;
}