我想将一些项目添加到列表框中,但问题是,我希望应用程序在添加每个项目后等待500ms然后添加下一个项目;所以我使用下面的代码:
reduction_list.Items.Add("ID");
System.Threading.Thread.Sleep(500);
reduction_list.Items.Add("Name");
System.Threading.Thread.Sleep(500);
reduction_list.Items.Add("City");
System.Threading.Thread.Sleep(500);
reduction_list.Items.Add("Major");
但应用程序等待1500毫秒并将所有4个项目一起添加。
答案 0 :(得分:1)
问题在于您正在使UI线程处于休眠状态,这意味着它永远不会有机会使用新项重绘UI。
您应该使用计时器。 (要使用的确切计时器类取决于您使用的UI框架 - Winforms或WPF。请正确标记您的问题。)
答案 1 :(得分:1)
这是因为您在添加后没有更新界面,所以只需在每次调用后添加:
reduction_list.Invalidate();
reduction_list.Update();
这里的问题是你没有给接口时间更新自己,因为你正在UI线程上执行代码。因此,在每次添加后添加Invalidate()或Refresh()会导致应用程序刷新reduction_list
视图。