Просто используйте таймер и, когда он отметится, создайте новый поток и обновите DataGrid
.
Пример с Windows Forms и TPL (.NET Framework 4 и 3.5).
Инициализировать таймер:
this.timer = new Timer() { Interval = 2000 };
this.timer.Tick += OnFetch;
this.timer.Start();
Управление тиковым событием:
private void OnFetch(object sender, EventArgs e)
{
Task.Factory.StartNew(() =>
{
// Get the data from your db
var data = GetDbData();
foreach (MyElement row in data)
{
if (dataGridView1.InvokeRequired)
{
dataGridView1.Invoke(new Action(() =>
{
// Add the row
}));
}
}
});
}