說我有下面的類/表格(半僞):問題的背景工人
public partial class X : Form
{
private DataTable dt;
private BackgroundWorker bg;
public X()
{
dt.Columns.Add("A");
dt.Columns.Add("B");
dt.Columns.Add("C");
}
private void button_Click(...)
{
bg = new BackgroundWorker();
bg.DoWork += new DoWorkEventHandler(bg_DoWork);
bg.RunWorkerAsync();
}
private void bg_DoWork(...)
{
// do some stuff
MagicMethod(parameters);
// doesnt work, how to fix this?
dataGridView1.Invoke((Action)delegate { dataGridView1.DataSource = dt; });
}
private void MagicMethod(params)
{
// update a label, WORKS
label1.Invoke((Action) delegate { label1.Text = "somestuff" }
// do some stuff to fill the datatable
}
}
Ofcourse,這是一個精華版本,沒有BackgroundWorker的一切是合理的,但因爲我想一個更靈活的UI我嘗試實施一個。但是網格不會被工作人員更新(而標籤卻正確)。有小費嗎?
如果您可以提供一個簡短但完整的示例,那將會更容易幫助您。 – 2009-12-17 10:56:16
激活調試>例外>公共語言運行時例外>引發並檢查失敗。你提供的代碼工作。 – jmservera 2009-12-17 11:07:02