刚开始学写WINFORM程序,遇到了问题,想请教一下:
程序功能:界面上有三个DataGridView(dgvMain,dgvException,dgvCapacity),
dgvMain为主程序数据
dgvException和dgvCapacity需要待主程序加载完成后同时使用多线程在后台自动加载数据,并且dgvMain也要通过多线程再自动加载部分单元格背景色(需要通过计算)。
目前的写法:
第1步:加载dgvMain数据;
第2步:通过Thread加载单元格背景色;
Thread thread1 = new Thread(new ThreadStart(delegate
{
\this.LoadCellColor();
}));
thread1.Start();
第3步:通过Thread加载单元格背景色;
Thread thread2 = new Thread(new ThreadStart(delegate
{
\this.LoadException();
}));
thread2.Start();
第3步:通过Thread加载单元格背景色;
Thread thread3 = new Thread(new ThreadStart(delegate
{
\this.LoadCapacity();
}));
thread3.Start();
界面刷新 建议放在主线程里面
界面刷新的代码需要用Control.Invoke或者Control.BeginInvoke去同步。
http://blog.sina.com.cn/s/blog_5584fa8e01011rpl.html
http://blog.sina.com.cn/s/blog_4c8f1ac201013nbb.html
LoadCapacity()方法中包含了
dgvCapacity.BeginInvoke(new EventHandler(delegate{
///功能
}))