填充的DataGridView我是新来的.NET。我需要在C#winforms中使用异步回调机制完成以下任务。使用异步回调的线程机制
在表单负载我需要从数据库中获取数据,并在一个DataGridView填充。检索可能需要很长时间,我想同时使用UI。另外我需要一个回调机制来检查datagridview是否被填充。我必须使用线程和异步回调机制来实现这一点。
private CustomerEntities cn = null;
delegate CustomerEntities DataSourceDelegate();
delegate void loadGridViewDelegate(CustomerEntities dtCustomers);
DataSourceDelegate delegate_GetCustomers;
public CustomerEntities DataSource()
{
cn = new CustomerEntities();
return cn;
}
private void Form1_Load(object sender, EventArgs e)
{
status.Text = "Loading";
delegate_GetCustomers = new DataSourceDelegate(DataSource);
delegate_GetCustomers.BeginInvoke(LoadCustomerCallBack, null);
}
private void LoadCustomerCallBack(IAsyncResult ar)
{
CustomerEntities dtCutomers;
dtCutomers = delegate_GetCustomers.EndInvoke(ar);
loadGridView(dtCutomers);
}
private void loadGridView(CustomerEntities dtCutomers)
{
if (dataGridView.InvokeRequired)
{
loadGridViewDelegate del = new loadGridViewDelegate(loadGridView);
dataGridView.Invoke(del, new CustomerEntities[] { dtCutomers });
}
else
{
dataGridView.DataSource = dtCutomers.customerDetails;
}
}
datagridview正在正确填充,但当我试图访问它时函数检索数据的UI被阻止。
使用的BeginInvoke – Backtrack
确定我们得到了你所需要的,但什么是你的问题? – I4V
@ I4V:由于我是新来的.NET,我需要参与实现这一 – impulse