我有一个DataGridView,用户可以通过键上键和键下键来移动。
现在,我使用keyup事件刷新imageBox中的图像,具体取决于一列中的值。如果用户只向下或向上移动一行,则可以很好地工作。问题是,如果用户想要通过点击几次向上或向下键来快速移动几行,UI总是会冻结一段时间。
如何防止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());
}
}发布于 2017-06-17 10:02:01
我有一个很有用的想法:
创建子例程以在栅格移动和LoadPicture之间执行操作。如果你调用LoadPicture,调用这个例程。
此例程将:
1-获取当前网格行或图片名称;
2-启动Task.Delay几毫秒甚至1秒;
3-再次将当前网格行或图片转换为另一个变量,并与第一个变量进行比较(步骤1);
如果没有变化,调用LoadPicture...
https://stackoverflow.com/questions/44596286
复制相似问题