Как добавить фактическое ожидание? - PullRequest
2 голосов
/ 13 июля 2011

Я сейчас пытаюсь написать очень простую вещь.

что он должен делать:

  1. введите Google
  2. подождите 5 секунд
  3. искать что-то.

Теперь, часть, которую я не могу сделать, это ждать. Есть спящий поток и т. Д., Но они останавливают графический интерфейс и делают мою программу непригодной для использования. Я также могу сделать это с таймерами, но это не очень эффективный способ сделать это, так как в реальном приложении будет много ожиданий ... Есть ли как-то с этим всего 2-3 строки кода, без остановки GUI?

Ответы [ 2 ]

2 голосов
/ 13 июля 2011

Таймер - это именно то, что вам нужно - вы хотите сказать: «Через 5 секунд, сделайте X» (возможно, выполняется в потоке пользовательского интерфейса), что именно то, что таймер делает для вас. Если вы хотите инкапсулировать это в один метод, который вы можете передать в Action и TimeSpan или что-то еще, это нормально - но таймер определенно является подходящим способом.

(Тип таймера, который вы хотите использовать, будет зависеть от того, в каком потоке вы хотите запустить таймер и т. Д.)

1 голос
/ 13 июля 2011

Вы должны выполнить работу над отдельным потоком, чтобы он не остановил поток GUI.

    Thread worker = new Thread(dowork);
    worker.Start();
...