我有一个DataGridView
用户正在通过keyup和keydown。
现在我使用keyup Event刷新imageBox中的图像,具体取决于一列的值。如果用户只向下或向上移动一行,它可以正常工作。问题是,如果用户通过向上或向下敲击几次快速移动几行,则UI总是会冻结一段时间。
如何防止冻结用户界面并使图片加载“后台作业”?
到目前为止我的代码:
private void LoadPicture(string path)
{
threadworker = new Thread(() => pictureBox1.Image = path);
threadworker.Start();
}
public void datenübergeben()
{
if (dataGridView1.CurrentRow.Cells["Bild1"].Value.ToString().Length != 0)
{
LoadPicture(dataGridView1.CurrentRow.Cells["Bild1"].Value.ToString());
}
}
答案 0 :(得分:0)
我有一个可以有用的想法:
创建一个子例程,在Grid移动和LoadPicture之间进行操作。你调用LoadPicture,调用那个例程。
此例程将:
1-获取当前的GRID行或图片名称;
2-启动Task.Delay几毫秒甚至1秒;
3-再次获取当前GRID行或图片到另一个变量并与第一个变量进行比较(步骤1);
如果没有变化,请调用LoadPicture ...