Я делаю все это на C#, в Visual Studio 2008.
Я хочу замедлить работу своего алгоритма, чтобы пользователь мог наблюдать за его работой. В графическом интерфейсе видны периодические изменения, поэтому я добавил «thread.sleep» после каждого экземпляра.
Проблема в том, что «thread.sleep», если установлено как минимум на секунду, после нескольких экземпляров «thread.sleep» (после нескольких циклов) просто замораживает весь графический интерфейс и сохраняет его таким до завершения программы. Не сразу, но всегда бывает. Как скоро, зависит от продолжительности сна.
У меня есть доказательство того, что вся программа не зависает, она работает, даже сон делает паузы правильной длины. Но графический интерфейс зависает в определенный момент, пока алгоритм не завершится, и в этот момент он показывает правильное конечное состояние.
Как решить эту проблему? Альтернатива алгоритму паузы в определенный момент?
Timer
. Не используйтеDoEvents
; это не правильный ответ ни на один вопрос. - person Cody Gray   schedule 27.03.2011