首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不冻结UI的情况下在DataGridView中移动并加载图片

问在不冻结UI的情况下在DataGridView中移动并加载图片
EN

Stack Overflow用户
提问于 2017-06-17 03:02:48
回答 1查看 52关注 0票数 0

我有一个DataGridView,用户可以通过键上键和键下键来移动。

现在,我使用keyup事件刷新imageBox中的图像,具体取决于一列中的值。如果用户只向下或向上移动一行,则可以很好地工作。问题是,如果用户想要通过点击几次向上或向下键来快速移动几行,UI总是会冻结一段时间。

如何防止UI冻结,并使图片加载“后台工作”?

到目前为止,我的代码:

代码语言:javascript
复制
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());
    }
}
EN

回答 1

Stack Overflow用户

发布于 2017-06-17 10:02:01

我有一个很有用的想法:

创建子例程以在栅格移动和LoadPicture之间执行操作。如果你调用LoadPicture,调用这个例程。

此例程将:

1-获取当前网格行或图片名称;

2-启动Task.Delay几毫秒甚至1秒;

3-再次将当前网格行或图片转换为另一个变量,并与第一个变量进行比较(步骤1);

如果没有变化,调用LoadPicture...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44596286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档