Как я могу заставить мое приложение ждать определенное количество времени? - PullRequest
3 голосов
/ 27 августа 2011

Я хочу добавить некоторые элементы в список, но дело в том, что я хочу, чтобы приложение ожидало 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 элемента вместе.

Ответы [ 2 ]

1 голос
/ 27 августа 2011

Это потому, что вы не обновляли интерфейс после добавления, поэтому просто добавляйте его после каждого вызова:

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

Проблема в том, что вы не дали интерфейсу время для обновления,так как вы выполняете код в потоке пользовательского интерфейса.Поэтому добавление Invalidate () или Refresh () после каждого добавления приведет к тому, что приложение обновит представление reduction_list.

1 голос
/ 27 августа 2011

Проблема в том, что вы заставляете поток пользовательского интерфейса спать, а это значит, что у него никогда не будет возможности перерисовать пользовательский интерфейс с новыми элементами.

Вместо этого вы должны использовать таймер. (Точный класс таймера для использования зависит от того, какую среду пользовательского интерфейса вы используете - Winforms или WPF. Пожалуйста, пометьте свой вопрос соответствующим образом.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...