Страница: 1 | 2 |
Вопрос: Пауза
Добавлено: 21.01.11 01:13
Автор вопроса: Nezhniy | Web-сайт:
Function starting()
vopros0()'1е действие
vopros1()'2е действие
vopros2()'и так далее
vopros3()
vopros4()
Form2.Show()
End Function
Как делать паузы в секундах между действиями кода не останавливая поток , как это Sleep делает , можно это как то через таймер сделать ?
Ответы
Всего ответов: 27
Номер ответа: 1
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #1
Добавлено: 21.01.11 11:43
как сделать паузу не делая паузы? вдумайся в собственный вопрос, может, вес таки остановить поток?
Номер ответа: 2
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #2
Добавлено: 21.01.11 12:00
Номер ответа: 3
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #3
Добавлено: 21.01.11 12:12
VBDUnit, ты останавливал поток! И, мало того, использовал медленную и бажную функцию DoEvents. А что, если последняя итерация цикла, прямо на каком нибудь событии, в момент DoEvents, займет много времени? функция (странно, что не процедура, ибо возвращаемых значений я не вижу) SoftSleep порработает нагло больше, чем ей было указано в параметре! Что тогда?
Номер ответа: 4
Автор ответа:
Nezhniy
ICQ: 419841508
Вопросов: 9
Ответов: 100
Web-сайт:
Профиль | | #4
Добавлено: 21.01.11 14:13
Я имел ввиду что почему то когда выполняется sleep у меня не появляются картинки хотя в функции указано pict.visible=true , просто как будто не успевают появиться и прога зависает на указаное время.
Номер ответа: 5
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #5
Добавлено: 21.01.11 14:27
Где не появляются, какие картинки, и что такое pict?
Номер ответа: 6
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #6
Добавлено: 21.01.11 14:29
vopros1()'2е действие
vopros2()'и так далее
Номер ответа: 7
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #7
Добавлено: 21.01.11 15:35
VBDUnit, ты останавливал поток! И, мало того, использовал медленную и бажную функцию DoEvents. А что, если последняя итерация цикла, прямо на каком нибудь событии, в момент DoEvents, займет много времени? функция (странно, что не процедура, ибо возвращаемых значений я не вижу) SoftSleep порработает нагло больше, чем ей было указано в параметре! Что тогда?
Бида... особенно когда отображаешь картинки.
Номер ответа: 8
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #8
Добавлено: 21.01.11 15:48
Бида ...
Номер ответа: 9
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #9
Добавлено: 21.01.11 16:27
Полным ахтунгом назвал его ты, а мой пример вполне годится для решения задачи, которую решает автор. Впрочем, то, что написано справа от слова "Бида..." помогает уловить сарказм. Но, видимо, не всем.
Я имел ввиду что почему то когда выполняется sleep у меня не появляются картинки хотя в функции указано pict.visible=true , просто как будто не успевают появиться и прога зависает на указаное время.
Попробуй мой пример, на автора предыдущего поста не обращай внимания - он просто немного комплексует из-за небольшой компетенции (см. пост 5) и пытается самоутвердиться.
Номер ответа: 10
Автор ответа:
Nezhniy
ICQ: 419841508
Вопросов: 9
Ответов: 100
Web-сайт:
Профиль | | #10
Добавлено: 21.01.11 17:47
VβÐUηìt, твой код в vb6 ,я в vb.net, но не суть , напиши на примере , пожалуйста, vopros0() vopros1() , как между этими 2мя процедурами сделать паузу в 5 секунд , при том чтоб все кантинки в vopros0 отобразились(у меня в процедурах стоит перемешивание картинок на рандом), то есть перемешались картинки - отобразились , 5 секунд на них смотришь , потом vopros1 .
Номер ответа: 11
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #11
Добавлено: 21.01.11 18:07
твой код в vb6 ,я в vb.net, но не суть
Нет,нет, тут то как раз и суть. В VB6 потков нет (точнее есть, но это отдельное очень занимательное и веселое занятие), поэтому в легких случаях обходятся дуэвентсами и всем остальным, чтобы не подвисало. Но именно когда "чтобы не повисало", то есть неточности во времени простительны. Если все сложнее - то выкручиваются (или пересаживаются на дотнет и пишут топики про то, что vb6 говно). В дотнете с потоками работать можно, причем абсолютно спокойно. Но потоки, они и в дотнете потоки - это отдельная тема, в твоем случае можно обойтись жутко неоптимальным, ахтуновским, ужастным и нубским, но очень простым путем. Если хочешь, можешь на досуге поразбирать потоки. Если вкраце - потоки нужны, чтобы параллельно выполнять несколько функций.
Тебе проще так:
Номер ответа: 12
Автор ответа:
Nezhniy
ICQ: 419841508
Вопросов: 9
Ответов: 100
Web-сайт:
Профиль | | #12
Добавлено: 21.01.11 18:18
VβÐUηìt , огроменное спс, работает )) единственный человек кто разжевал все )
Номер ответа: 13
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #13
Добавлено: 21.01.11 18:20
говнокод
олсо, привязываться к DateTime.Now нельзя, потому что в этот момент может произойти переход на летнее/зимнее время, смена часового пояса или синхронизация часов, отстающих на несколко минут от интернет-времени, и работа функции станет непредсказуемой. DateTime.UtcNow получше, но тоже не то. Можно привязываться к Environment.TickCount.
Если пишешь на .NET, запускай отдельный поток и в нем свободно можешь вызывать System.Threading.Thread.Sleep на нужное тебе время. UI блокироваться не будет. Для того чтоб обращаться к UI из этого потока, используется Control.Invoke/Control.BeginInvoke, сложного здесь ничего нет.
Номер ответа: 14
Автор ответа:
Nezhniy
ICQ: 419841508
Вопросов: 9
Ответов: 100
Web-сайт:
Профиль | | #14
Добавлено: 21.01.11 18:21
объясни , пожалуйста, почему этот способ нубский ?
Номер ответа: 15
Автор ответа:
Nezhniy
ICQ: 419841508
Вопросов: 9
Ответов: 100
Web-сайт:
Профиль | | #15
Добавлено: 21.01.11 18:21
пока писал , написали ответ)