c# 多线程往datagridview会造成假死,滚动条无法滚动
c#多线程往datagridview会造成假死,滚动条无法滚动我是新手,我希望得到帮助,求详细的代码和使用办法真的很紧急,谢谢了求详细的代码和使用办法...
c# 多线程往datagridview会造成假死,滚动条无法滚动
我是新手,我希望得到帮助,求详细的代码和使用办法
真的很紧急,谢谢了
求详细的代码和使用办法 展开
我是新手,我希望得到帮助,求详细的代码和使用办法
真的很紧急,谢谢了
求详细的代码和使用办法 展开
3个回答
展开全部
首先多线程同时操作控件是不安全的,必须利用同步锁来控制线程之间的同步,如果要求界面不受影响应考虑采用异步委托 private delegate void UpdateData来实现界面更新,下面是例子
private delegate void UpdateDat(string c1,string c2);
static private Object ULock = new Object();//线程锁
然后利用 new UpdateDat.BeginInvoke(UpdateData);
public void UpdateData(string c1,string c2)
{
Invoke(new EventHandler(delegate//如果不操作用户控件可以省略此方法
{
lock (ULock)
{
lock()
{
//这里写你的更新代码
}
}
}));
}
private delegate void UpdateDat(string c1,string c2);
static private Object ULock = new Object();//线程锁
然后利用 new UpdateDat.BeginInvoke(UpdateData);
public void UpdateData(string c1,string c2)
{
Invoke(new EventHandler(delegate//如果不操作用户控件可以省略此方法
{
lock (ULock)
{
lock()
{
//这里写你的更新代码
}
}
}));
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询