Control.CheckForIllegalCrossThreadCalls = false;不检查控件的赋值是否是跨线程的.
但对DataGridView控件时,会出现没有滚动条的情况。
建议用定义一个委托。
例子[伪代码]:
private delegate void SetControlValue(DataTable dt);
private void Run()
{
if (InvokeRequired)
{
this.Invoke(new SetControlValue(SetControl), tmpDT);
}
}
//跟SetProgressBarValue委托相匹配的方法
private void SetControl(DataTable dt)
{
this.dgvDBNameVersion.DataSource = dt;
label1.Text = dt.Rows.Count.ToString();
}