C# 如何让我的应用程序等待特定的时间?
我想向列表框中添加一些项目,但问题是,我希望应用程序在添加每个项目后等待500毫秒,然后添加下一个项目;所以我使用了下面的代码:C# 如何让我的应用程序等待特定的时间?,c#,winforms,C#,Winforms,我想向列表框中添加一些项目,但问题是,我希望应用程序在添加每个项目后等待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(
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个项目添加到一起。问题在于您正在使UI线程休眠,这意味着它永远没有机会使用新项目重新绘制UI
你应该改用定时器。(要使用的确切计时器类取决于您使用的UI框架-Winforms或WPF。请适当标记您的问题。)这是因为您在添加后没有更新接口,所以只需在每次调用后添加以下内容:
reduction_list.Invalidate();
reduction_list.Update();
这里的问题是,您没有给接口时间进行自我更新,因为您是在UI线程上执行代码的。因此,每次添加或添加后,应用程序都会刷新
缩减列表
视图。这是在asp.net应用程序中还是在winforms应用程序中?很抱歉,我没有创建正确的标记。这是winformsEven,如果这起作用,永远不建议冻结UI-它将阻止任何其他用户交互。在这种情况下,UI被锁定在交互上1.5秒,这在我看来太长了。@Anders是的,我同意,这在我的脑海中浮现,但我们不知道他的要求,也许他希望如此,为什么,怎么知道。。