如何让我的应用程序等待特定的时间?
问题描述:
我想添加一些项目到列表框,但事情是,我希望应用程序在添加每个项目后等待500毫秒,然后添加下一个项目;所以我用下面的代码:如何让我的应用程序等待特定的时间?
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项一起。
答
这是因为您添加后没有更新界面,所以只需在每个电话:
reduction_list.Invalidate();
reduction_list.Update();
这里的问题是,您没有给接口时间来更新自身,因为您正在UI线程上执行代码。因此,在每次添加后添加Invalidate()或Refresh()将导致应用程序刷新reduction_list
视图。
答
问题是,你正在使UI线程休眠,这意味着它永远不会有机会重新绘制UI的新项目。
您应该使用计时器代替。 (要使用的确切计时器类取决于您使用的是什么UI框架--Winforms或WPF,请适当标记您的问题。)
+0
我编辑了标签....所以你能写出我需要写的全部命令吗? – Daniel
这是在一个asp.net应用程序或winforms应用程序? –
对不起,我没有做正确的标签。它是winforms – Daniel