【发布时间】:2014-09-19 16:19:19
【问题描述】:
我有一个 windows 窗体,它需要永远将数据加载到我的 datagridview 中。
所以我以为我使用了一个线程,但我不断收到错误:
“跨线程操作无效:控件'dataGridView1'从创建它的线程以外的线程访问。”
这是我的代码:
private void Form1_Load(object sender, EventArgs e)
{
//lblFormDisplayStatus.Text = "Retrieving Data from Database";
if (isProcessRunning)
{
MessageBox.Show("A process is already running.");
return;
}
SetIndeterminate(true);
Thread backgroundThread = new Thread(
new ThreadStart(() =>
{
isProcessRunning = true;
Thread.Sleep(5000);
//MessageBox.Show("Thread completed!");
BeginInvoke(new Action(() => Close()));
RunProgram(); // the method responsible for binding the data to datagrid
isProcessRunning = false;
}
));
backgroundThread.Start();
ShowDialog();
}
请让我摆脱痛苦,告诉我哪里出错了
谢谢
【问题讨论】:
-
pls put me out of my misery and show me where I am going wrong- 你可能有兴趣观看this short clip。 -
这很有帮助... :p
标签: c# multithreading