winform更新UI控件的时间过长导致假死
winform更新UI控件的时间过长导致假死我有一个datagridview,一般会有几千到几万条数据。需要根据不同的数据给不同的单元格着色。这个时间虽然不长,只需要几秒...
winform更新UI控件的时间过长导致假死我有一个datagridview,一般会有几千到几万条数据。需要根据不同的数据给不同的单元格着色。这个时间虽然不长,只需要几秒钟,但是更新UI的几秒钟就会黑屏卡死,请问有什么解决方案呢?多线程又不能访问UI控件
展开
展开全部
可以用多线程,委托创建控件的那个线程来更新控件就可以了。
if (dataGridView1.InvokeRequired) { //判断当前线程是否必须调用invoke来更新控件
dataGridView1.Invoke(new Action(() => { //委托创建控件的线程进行更新控件
dataGridView1.BackgroundColor = Color.Black;//更新控件操作
}));
}
追问
不是整个dgv,是每一个单元格哦
追答
不管是什么,反正多线程里操作控件就用Invoke
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询