我正在后台工作线程上调用一个函数,该函数需要ListBox
作为在主线程上初始化的参数传递。我正在使用以下代码来做
private void simpleButton1_Click(object sender, EventArgs e)
{
bw.RunWorkerAsync();
GetData()
}
void bw_DoWork(object sender,DoWorkEventArgs e)
{
this.Invoke(new MethodInvoker(delegate
{
ShowLoadingPanel(listBox);
}));
}
private void GetData()
{
for (int i = 0; i < 500000; i++)
{
datatable.Rows.Add(new object[] { "raj", "raj", "raj", i });
}
}
void ShowLoadingPanel(Control control)
{
//Doing some work here
}
问题是该ShowLoadingPanel
函数仅在GetData
函数完成执行后才调用。我希望这两个函数在不同的线程中并行运行。
我怎样才能做到这一点 ??