Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Timer_Tick не смотря ни на что 
:(
    Опции темы
swetik1981
Дата 8.2.2014, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 20.12.2007

Репутация: нет
Всего: нет



Программа должна выполнять некое действие в постоянном режиме, не зависимо от других происходящих в ней процессах. Например, постоянно со строгой периодичностью  подавать сигнал BEEP. Для этого взят Timer, в событии которого заложено:

Код

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    
     Beep    

End Sub


Но, к сожалению, иногда таймер «замирает» и сигнал длительное время  не подаётся. Это происходит в моей программе  тогда, когда в программу загружаются большие базы данных. Я так понимаю, что это как-то связано с приоритетами потоков (хотя могу и ошибаться). Как сделать так, чтобы таймер вёл себя так, как и  положено таймеру,  - событие Timer1_Tick происходило с заданной для него периодичностью, не зависимо от других происходящих в программе процессов (пусть даже в ущерб скорости выполнения этих процессов)?

PM MAIL   Вверх
Certain
Дата 10.2.2014, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 18.6.2008
Где: Moscow

Репутация: нет
Всего: 4



Если я не ошибаюсь, Вы используете Timer из  System.Windows.Forms, 
в редакторе на форму перетащили его из панели визуальных элементов.
Он, к сожалению, работает в том же потоке, в котором и был объявлен.
Если поток занят загрузкой каких-то данных из БД, то таймер и не сработает, 
пока поток не освободится и не вытащит сообщение таймера из очереди 
сообщений потока.
Используйте потоковый таймер System.Threading.Timer

Это сообщение отредактировал(а) Certain - 10.2.2014, 12:40
--------------------
Работа программиста и шамана имеет много общего - оба боpмочyт непонятные слова, совершают непонятные действия и не могут объяснить, как оно работает.
PM MAIL ICQ   Вверх
jonie
Дата 10.2.2014, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: нет
Всего: 118



Цитата(swetik1981 @  8.2.2014,  23:41 Найти цитируемый пост)
событие Timer1_Tick происходило с заданной для него периодичностью, не зависимо от других происходящих в программе процессов (пусть даже в ущерб скорости выполнения этих процессов)?

только в системах реального времени ваше требование "почти выполнимо"...


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.1147 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.