| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB .NET > Timer_Tick не смотря ни на что |
| Автор: swetik1981 8.2.2014, 22:41 | ||
Программа должна выполнять некое действие в постоянном режиме, не зависимо от других происходящих в ней процессах. Например, постоянно со строгой периодичностью подавать сигнал BEEP. Для этого взят Timer, в событии которого заложено:
Но, к сожалению, иногда таймер «замирает» и сигнал длительное время не подаётся. Это происходит в моей программе тогда, когда в программу загружаются большие базы данных. Я так понимаю, что это как-то связано с приоритетами потоков (хотя могу и ошибаться). Как сделать так, чтобы таймер вёл себя так, как и положено таймеру, - событие Timer1_Tick происходило с заданной для него периодичностью, не зависимо от других происходящих в программе процессов (пусть даже в ущерб скорости выполнения этих процессов)? |
| Автор: Certain 10.2.2014, 12:39 |
| Если я не ошибаюсь, Вы используете Timer из System.Windows.Forms, в редакторе на форму перетащили его из панели визуальных элементов. Он, к сожалению, работает в том же потоке, в котором и был объявлен. Если поток занят загрузкой каких-то данных из БД, то таймер и не сработает, пока поток не освободится и не вытащит сообщение таймера из очереди сообщений потока. Используйте потоковый таймер System.Threading.Timer |