.NET Listview d'Actualisation

J'ai le code suivant, qui prend essentiellement en valeurs à partir d'une base de données et de remplir une listview.

using (IDataReader reader = cmd.ExecuteReader())
{                    
    lvwMyList.Items.Clear();
    while (reader.Read())
    {
        ListViewItem lvi = lvwMyList.Items.Add(reader["Value1"].ToString());
        lvi.SubItems.Add(reader["Value2"].ToString());                    
    }
}

Le problème que j'ai c'est que c'est exécutée de façon répétée à de courts intervalles (chaque seconde) et les résultats dans les éléments de la liste continuellement en train de disparaître et réapparaitre. Est-il un moyen d'arrêter la liste d'actualiser jusqu'à ce qu'il fait avec les mises à jour? Quelque chose comme ci-dessous:

using (IDataReader reader = cmd.ExecuteReader())
{                    
    lvwMyList.Items.Freeze(); //Stop the listview updating
    lvwMyList.Items.Clear();
    while (reader.Read())
    {
        ListViewItem lvi = lvwMyList.Items.Add(reader["Value1"].ToString());
        lvi.SubItems.Add(reader["Value2"].ToString());                    
    }
    lvwMyList.Items.UnFreeze(); //Refresh the listview
}
Gel signifie quelque chose d'autre: cela signifie que l'objet (dans ce cas, une collection d'éléments) ne change pas alors que c'est gelé. Dans ce cas, vous êtes alors immédiatement le modifier!
Gel était juste un terme que j'ai utilisé pour expliquer mon exigence

OriginalL'auteur Paul Michaels | 2010-07-21