如何让我的应用程序等待特定的时间?

发布于 2024-12-01 20:28:23 字数 413 浏览 1 评论 0原文

我想向列表框中添加一些项目,但问题是,我希望应用程序在添加每个项目后等待 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 个项目添加在一起。

I want to add some Items to a listbox, but the thing is, I want the application waits for 500ms after adding each item then adds the next item; so I used the code below:

    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");

but the application waits for 1500ms and adds the whole 4 items all together.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦回梦里 2024-12-08 20:28:23

那是因为您在添加后没有更新界面,所以只需在每次调用后添加以下内容即可:

reduction_list.Invalidate();
reduction_list.Update(); 

这里的问题是您没有给界面时间来更新自身,因为您是在 UI 线程执行代码。因此添加 Invalidate()Refresh() 每次添加后都会导致应用程序刷新reduction_list 视图。

That is because you didn't update the interface after adding, so just add this after each call:

reduction_list.Invalidate();
reduction_list.Update(); 

The problem here is that you didn't give the interface time to update itself, since you are executing the code at UI thread. So adding Invalidate() or Refresh() after each add will cause the application to refresh the reduction_list view.

你是我的挚爱i 2024-12-08 20:28:23

问题是您正在使 UI 线程休眠,这意味着它永远没有机会使用新项目重新绘制 UI。

您应该使用计时器。 (要使用的确切计时器类取决于您使用的 UI 框架 - Winforms 或 WPF。请适当标记您的问题。)

The problem is that you are making the UI thread sleep, which means that it never gets a chance to redraw the UI with the new items.

You should use a timer instead. (The exact timer class to use depends on what UI framework you are using - Winforms or WPF. Please tag your question appropriately.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文