关于C#的Form窗体实时刷新的有关问题
关于C#的Form窗体实时刷新的问题
我用C#编了一个Form窗体程序,在添加了单击响应事件后,如
private void pictureBox_Click(object sender, EventArgs e)
窗体总是在该函数执行完才刷新。
而我需要的是在函数执行的过程中刷新窗体,比如pictureBox控件的图片更换后立即显示,该怎么做?
单击响应事件如下:
private void pictureBox_Click(object sender, EventArgs e)
{
......
Blocks[i, j].Image = Image.FromFile("......."); //Blocks是pictureBox控件数组
......
}
Blocks[i, j]的图片总是在函数执行完显示,现在希望图片更换后立即显示
本人菜鸟一枚,还望各位高手不吝赐教!
------解决思路----------------------
Application.DoEvents();无效,
是因为Blocks[i, j].Image = Image.FromFile("......."); 耗时太长
建议另起线程,
具体说来就是把耗时的加载操作放在线程中,加载完成后
通过委托的方式来更新UI
但是lz希望的一更新就显示估计还是有问题
因为Blocks[i, j].Image = Image.FromFile("......."); 耗时长
放在那里都需要时间,
只不过放在线程中,能保证form窗体不会出现无响应的问题
我用C#编了一个Form窗体程序,在添加了单击响应事件后,如
private void pictureBox_Click(object sender, EventArgs e)
窗体总是在该函数执行完才刷新。
而我需要的是在函数执行的过程中刷新窗体,比如pictureBox控件的图片更换后立即显示,该怎么做?
单击响应事件如下:
private void pictureBox_Click(object sender, EventArgs e)
{
......
Blocks[i, j].Image = Image.FromFile("......."); //Blocks是pictureBox控件数组
......
}
Blocks[i, j]的图片总是在函数执行完显示,现在希望图片更换后立即显示
本人菜鸟一枚,还望各位高手不吝赐教!
------解决思路----------------------
Application.DoEvents();无效,
是因为Blocks[i, j].Image = Image.FromFile("......."); 耗时太长
建议另起线程,
具体说来就是把耗时的加载操作放在线程中,加载完成后
通过委托的方式来更新UI
但是lz希望的一更新就显示估计还是有问题
因为Blocks[i, j].Image = Image.FromFile("......."); 耗时长
放在那里都需要时间,
只不过放在线程中,能保证form窗体不会出现无响应的问题