Еще раз про QProcess, идеология применения |
Здравствуйте, гость ( Вход | Регистрация )
Еще раз про QProcess, идеология применения |
pwp2008 |
21.12.2014, 9:55
Сообщение
#1
|
Студент Группа: Участник Сообщений: 29 Регистрация: 19.12.2014 Пользователь №: 4299 Спасибо сказали: 0 раз(а) Репутация: 0 |
Для контроля наличия в сети , скажем, второго сервера можно периодически применять внешнюю
команду системы через QProcess. Как будет правильней и идеологически и практически : 1. Создать экземпляр класса QProcess и установить connect к нему при инициализации основной формы приложения, а применение его (start и прочее) выполнять с этим экземпляром по необходимости, возможно значительное количество раз , или 2. Каждый раз создавать новый экземпляр и connect, реализовать его и получать данные, далее все снова. По мне первый вариант должен меньше грузить систему, однако нужно решить проблему с stderr и stdout, чтобы не шло их накопление. |
|
|
lanz |
22.12.2014, 20:26
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Второй вариант гораздо менее уязвим к ошибкам программиста. Он не будет грузить больше систему(оверхед на создание объекта невелик). С первым вариантом гораздо больше проблем, потому что автоматически создается разделяемое состояние, которое надо будет учитывать/анализировать/очищать при перезапуске. Проще выкинуть весь объект.
|
|
|
pwp2008 |
23.12.2014, 19:03
Сообщение
#3
|
Студент Группа: Участник Сообщений: 29 Регистрация: 19.12.2014 Пользователь №: 4299 Спасибо сказали: 0 раз(а) Репутация: 0 |
Второй вариант гораздо менее уязвим к ошибкам программиста. Он не будет грузить больше систему(оверхед на создание объекта невелик). С первым вариантом гораздо больше проблем, потому что автоматически создается разделяемое состояние, которое надо будет учитывать/анализировать/очищать при перезапуске. Проще выкинуть весь объект. А предыдущий объект уйдет автоматом, как только я снова поставлю : m_process = new QProcess(this); ? Там ведь еще и connect к нему имеется. Или он тоже автоматом исчезнет на новом объекте? В целом, ясно. Спасибо. |
|
|
lanz |
23.12.2014, 20:08
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Как обычно все. Соединение слотов-сигналов само разорвется. |
|
|
Текстовая версия | Сейчас: 14.1.2025, 20:32 |