所有,我有一个Task
在后台线程上运行并做一些繁重的工作。我设置它的方式是,在完成此操作的同时,UI 线程使用进度信息更新 GUI,其中一些使用动画 .gif 文件。看下面的示例代码来说明问题
TaskScheduler uiScheduler = TaskScheduler.FromCurrentSynchronizationContext();
Task<bool> task = Task.Factory.StartNew(() =>
{
// Heavy work.
if (heavyWorkCompleted)
MethodToUpdateGui(uiScheduler); // Update DataGridView ImageCell on UI thread
// More work.
}
在执行“繁重工作”期间,我有一个“进行中”图像显示在相应的 DGV 图像单元格中,如果“繁重工作”成功,则此图像更改为勾号(在 DGV1 中),然后MethodToUpdateGui(uiScheduler)
使用此图像(刚刚更改) DGV1 中的图像以更新 DGV2。但是,MethodToUpdateGui(uiScheduler)
运行时它有时会太快地更新 DataGridView (DGV2)。我的意思是,图像不是我想要的刻度(应该是由于成功完成)它是“进行中”图像。对于我正在做的事情,似乎 DGV 的更新速度不够快。
有一个更好的方法吗?我敢在 GUI 更新后旋转后台线程以让 DGV1 “赶上”[这很讨厌!]?
谢谢你的时间。