我正在寻找一个规则来知道一个控件的哪些属性阻止从其它线程访问,而不是从它创建的线程访问它。 (比如说UI线程)换句话说,为什么可以从任意线程访问Control的某些属性,而其他线程拒绝它呢?跨线程操作异常的规则?
:
:
{
Thread thrd1 = new Thread(DoSomething);
thrd1.Start();
}
:
:
void DoSomething()
{
// There is no problem..
dataGridView1[columnIndex1, rowIndex1].Value = "Access is free!";
dataGridView1[columnIndex1, rowIndex1].Style.BackColor = Color.Red;
// Cross-Thread operation exception would be thrown..
dataGridView1.Rows[rowIndex1].Visible = false;
}
:
:
感谢
我觉得只是调用Invoke而不测试InvokeRequired更容易。 –