Подход: основная программа+подпрограммы
-
Konstantin Sumenko
- expert
- Сообщения: 1439
- Зарегистрирован: 17 июл 2008, 12:20
- Награды: 2
- Версия LabVIEW: 2010
- Откуда: Moscow
- Поблагодарили: 1 раз
- Контактная информация:
Подход: основная программа+подпрограммы
Нужен совет. Я решил разделить программу на две части: "сервер"- подцепляет прибор, создает датчики, устанавливает свойства задания, обрабатывает полученные данные; "клиенты"- берут из разделяемой части памяти собранные данные и проводят дальнейшую обработку и визуализацию. Основная идея: из-за приличной сложности сервера и различных вариантов клиентов я хочу сделать клиенты как можно более независимыми от программы сервера (как можно меньше потоков синхронизации). Клиенты выглядят как вызываемые по ссылке VI, обработанные данные получают через Shared Variable. Остается грамотно обрабатывать события контролов вызванных VI. Наиболее правильный путь с использованием динамических событий (обработчик находится в сервере). По некоторым причинам он не совсем уместен в моем случае. Вопрос такой: как будет работать приложение в целом, если в каждом клиенте я расположу собственные event структуры (заведомо известно, что в различных клиентах нет общих событий) и воспользуюсь двумя потоками (один-события, другой-отрисовка). Итого: один сервер (3 потока, 1 event-структура), до четырех одновременно запущенных клиентов (в каждом: 2 потока, 1 event структура). Не нравятся мне 4 event-структуры...
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Подход: основная программа+подпрограммы.
А что плохого в использовании ивент структур? Чем именно тебе они не нравятся?
-
Konstantin Sumenko
- expert
- Сообщения: 1439
- Зарегистрирован: 17 июл 2008, 12:20
- Награды: 2
- Версия LabVIEW: 2010
- Откуда: Moscow
- Поблагодарили: 1 раз
- Контактная информация:
Re: Подход: основная программа+подпрограммы
Они мне еще как нравятся
Только из-за них добавляется еще по одному потоку в каждый клиент (пусть они и не time critical, но все же).
Только из-за них добавляется еще по одному потоку в каждый клиент (пусть они и не time critical, но все же).
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Подход: основная программа+подпрограммы
Ну и пускай себе добавлется ещё один поток. В этом ничего страшного нет.
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Подход: основная программа+подпрограммы
В принципе "потока" в смысле объекта win32 thread (linux process) не добавляется. Так что я не стал бы ограничивать себя.Crowbar писал(а):Только из-за них добавляется еще по одному потоку в каждый клиент
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows