0
我正在研究一个C#
项目,其中DataGridView
在运行时显示在WinForm
中,需要每2到3秒更新一次。每个DataGridView
的DataSrouce
绑定到可根据用户的操作而改变的DataSet
。更新DataGridView或更新绑定的DataSource?
由于我完全是C#
的新手,我不知道应该如何实现GUI中窗体的实时刷新。当然,我需要多线程,以便显示的数据更新可以在后台完成,GUI不会挂起。
PS:在Qt
,每个view
为界,一model
,我可以在不同的线程从主界面线程更新每个model
以便GUI不会卡住。这是我现在正在做的。下面的示例代码。
// MainForm.cs
public Bind()
{
dataGridView.DataSource = TableCollection.DataTable1;
}
public StartTimer()
{
System.Windows.Forms.Timer tdfTimer = new System.Windows.Forms.Timer();
guiTimer.Tick += new EventHandler(Refresh);
guiTimer.Interval = 500;
guiTimer.Start();
}
public void Refresh(object sender, EventArgs e)
{
if (backgroundwork == null)
{
backgroundwork = new BackgroundWorker();
backgroundwork.DoWork += delegate(object s, DoWorkEventArgs args) { TableCollection.UpdateData(); };
}
if (!backgroundwork.IsBusy)
backgroundwork.RunWorkerAsync();
}
// TableCollection.cs
class TableCollection
{
static DataTable dataTable1;
public DataTable1
{
get { return dataTable1; }
}
static public void UpdateData()
{
// here i update each row in dataTable1
}
}