Вопрос по Event Structure
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Вопрос по Event Structure
В случае, если ни один ивент за время (Timeout в левом верхнем углу) не произошёл, то ивент структура выполняет Timeout Case.
В случае если Timeout не подключен, то Timeout Case не выполняется вообще, а значит его можно вообще удалить.
В случае если Timeout не подключен, то Timeout Case не выполняется вообще, а значит его можно вообще удалить.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Вопрос по Event Structure
Но использование Timeout может вылится в неприятное поведение программы. В случае если какой нибудь из ивентов происходит чаще чем таймаут, то итерация цикла происходит чаще, чем предполагается, при этом содержимое таймаут кейса не выполняется вообще.
Поэтому я никогда не использую таймаут в ивент структуре.
Поэтому я никогда не использую таймаут в ивент структуре.
-
- interested
- Сообщения: 2
- Зарегистрирован: 04 авг 2010, 10:42
- Версия LabVIEW: 9.0
- Контактная информация:
Re: Вопрос по Event Structure
Таймаут кейс предназначен для выполнения фоновых операций, когда VI простаивает и не более того. Если в них есть необходимость, например, обновление значений на экране (чтобы не городить отдельный поток), то вполне его можно использовать
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Вопрос по Event Structure
Да, но как я уже написал выше, не факт, что он будет выполняться. Всё зависит от выставленного времени Timeout и скорости поступления и скорости выполнения ивентов.
Три фактора, два из которых вариируют.
Три фактора, два из которых вариируют.
Re: Вопрос по Event Structure
Как в прочем не использование time out’а может привести к подвисанию потока.eg писал(а):Но использование Timeout может вылится в неприятное поведение программы. В случае если какой нибудь из ивентов происходит чаще чем таймаут, то итерация цикла происходит чаще, чем предполагается, при этом содержимое таймаут кейса не выполняется вообще.
Поэтому я никогда не использую таймаут в ивент структуре.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
-
Alex89
- adviser
- Сообщения: 202
- Зарегистрирован: 04 апр 2010, 18:20
- Награды: 1
- Версия LabVIEW: 2009 SP1
- Откуда: Санкт-Петербург
Re: Вопрос по Event Structure
Может быть он имел ввиду, что цикл с event структурой без event timeout не будет выполняться, если не будут происходить события? Но event вообще нужно использовать отдельным потоком, тогда все будет нормально.
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Вопрос по Event Structure
иногда event structure используется для обработки событий, генерируемых системными компонентами. Например, DAQmx способен высылать сообщение по опустошению половины буфера, например. Такие события удобно обрабатывать отдельным потоком, используя отдельную Event Structure. И тогда, пригодится timeout case, чтобы сгенерировать ошибку.
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
Re: Вопрос по Event Structure
Пардон, за то, что ввел в заблуждение - на работе запары. Что может “подвесить”? Как тут уже написали - это отсутствие событий. К примеру, родитель этого потока помер или референс кто-то прикрыл. Согласен, что такое случается редко, но такое случается (особенно на этапах отладки большого многопоточного проекта). Я уже не занимаюсь программированием по “большому”, поэтому довольно-таки сложно привести пример сходу, но в моей практике были случаи, когда из-за некорректного закрытия потока (abort vi) работающего с железом LV подвисала намертво. Референс был утерян и как следствие до потока не достучаться. Так что тоймауты иногда бывают полезны.eg писал(а):Это какое такое ещё подвисание?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 6 Ответы
- 233 Просмотры
-
Последнее сообщение Artem.spb
-
- 3 Ответы
- 355 Просмотры
-
Последнее сообщение ujin1
-
- 7 Ответы
- 940 Просмотры
-
Последнее сообщение dadreamer
-
- 10 Ответы
- 774 Просмотры
-
Последнее сообщение Zloydj
-
- 14 Ответы
- 706 Просмотры
-
Последнее сообщение Vladimir_T