c# 多线程往datagridview会造成假死,滚动条无法滚动

2025年03月22日 20:07
有3个网友回答
网友(1):

首先多线程同时操作控件是不安全的,必须利用同步锁来控制线程之间的同步,如果要求界面不受影响应考虑采用异步委托 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()

{

//这里写你的更新代码

}
}
}));
}

网友(2):

不用线程才会造成假死..用了怎么会假死呢?

网友(3):

你往线程里做了什么?