|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
|||||||||||
Выполнение слота присоединённого к таймеру в потоке25.08.2016, 11:18. Показов 19173. Ответов 37
Метки нет (Все метки)
Здравствуйте, подскажите пожалуйста, возможно ли выполнение слота присоединённого к таймеру в потоке. Почитал и вычитал, что запустить таймер в другом потоке нельзя, что и пишет мне вывод в консоль. Но мне нужно что-бы выполнение кода было именно в таймере и именно в другом потоке. Вот код:
Подскажите вообще никак, или, может можно запустить вне потока, а потом в поток запихнуть?
0
|
|||||||||||
| 25.08.2016, 11:18 | |
|
Ответы с готовыми решениями:
37
QTimer запус слота по таймеру Запуск метода по таймеру в отдельном потоке Отправка данных по таймеру в отдельном потоке |
|
137 / 107 / 23
Регистрация: 06.10.2008
Сообщений: 451
|
|
| 26.08.2016, 19:12 | |
|
1
|
|
|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
|||||||||||
| 29.08.2016, 07:22 [ТС] | |||||||||||
|
mevn, попробовал, как Вы советовали, ошибка:
0
|
|||||||||||
|
137 / 107 / 23
Регистрация: 06.10.2008
Сообщений: 451
|
||||||||||||||||
| 29.08.2016, 07:32 | ||||||||||||||||
|
Попробуйте вместо
Или
1
|
||||||||||||||||
|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
|
| 29.08.2016, 07:51 [ТС] | |
|
Спасибо, попробовал, та же ошибка. Посмотрите, как у меня объявлены myProcesses, и их как-то по другому надо в connect подавать?
0
|
|
|
93 / 93 / 33
Регистрация: 17.03.2012
Сообщений: 536
|
||||||
| 29.08.2016, 10:00 | ||||||
Сообщение было отмечено fredwriter как решение
Решение
А откуда у QSharedPointer'a сигнал finished(...)?
У него такого нет. Вы берете myProcesses[i], получаете QSharedPointer<QProcess>, а вам надо добраться до QProcess'а, причем до указателя/адреса этого объекта. После этого вы можете к сигналу QProcess'а присоединить ваш слот.
1
|
||||||
|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
|||||||||||||||||||||
| 29.08.2016, 11:10 [ТС] | |||||||||||||||||||||
|
Спасибо, вроде работает, но как мне в функции slotPingClosed определить индеск процесса, который завершился?
Если так:
0
|
|||||||||||||||||||||
|
93 / 93 / 33
Регистрация: 17.03.2012
Сообщений: 536
|
||||||
| 29.08.2016, 11:41 | ||||||
|
Ну как вариант, если нужен сам процесс, могу предложить в слоте
1
|
||||||
|
137 / 107 / 23
Регистрация: 06.10.2008
Сообщений: 451
|
||||||||||||
| 29.08.2016, 11:41 | ||||||||||||
Сообщение было отмечено fredwriter как решение
Решение
1
|
||||||||||||
|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
||||
| 29.08.2016, 11:57 [ТС] | ||||
|
0
|
||||
|
137 / 107 / 23
Регистрация: 06.10.2008
Сообщений: 451
|
||||||
| 29.08.2016, 11:58 | ||||||
|
Ой
1
|
||||||
|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
||||||||||||||||
| 30.08.2016, 04:32 [ТС] | ||||||||||||||||
|
Спасибо, теперь вроде работает, при отсутствии пинга программа не подвисает. Но возникла проблема. теперь, если последний ip в последнем process не пингуется, то его не удаётся удалить.
0
|
||||||||||||||||
|
93 / 93 / 33
Регистрация: 17.03.2012
Сообщений: 536
|
|
| 30.08.2016, 09:26 | |
|
А может он у вас nullptr, этот последний?
Хотя в данном случае это вряд ли так. А на какую строчку конкретно ругается? Попробуйте вывести кол-во элементов. По такому кусочку кода я понять не могу
0
|
|
|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
||||||||||||||||
| 30.08.2016, 11:39 [ТС] | ||||||||||||||||
|
Ругается на 3-ю строчку, удаление, собственно.
То есть, возможно перед удалением процесс нужно остановить.
0
|
||||||||||||||||
|
93 / 93 / 33
Регистрация: 17.03.2012
Сообщений: 536
|
|||||||||||
| 30.08.2016, 12:07 | |||||||||||
|
Я так понимаю, вы берет индекс через свойство ind_P? А если у вас индексы вектора и ind_P не совпадают?
У вектора, кстати, есть метод indexOf(...); И если вы делаете удаление указателя, делайте это, например, так:
И еще. Вы лучше когда новый процесс создаете, вы к сигналу финишед привяжите слот deleteLater(); Тогда вам и вручную удалять не надо будет ![]() типа:
0
|
|||||||||||
|
137 / 107 / 23
Регистрация: 06.10.2008
Сообщений: 451
|
|
| 30.08.2016, 12:13 | |
|
Возможно процесс был повторно запущен, (время таймера вышло), в этом случае можно поиграться с параметрами пинга: количество запусков, время ожидания.
0
|
|
|
7 / 7 / 2
Регистрация: 17.10.2009
Сообщений: 325
|
||||
| 30.08.2016, 12:17 [ТС] | ||||
|
Кстати, что скажете вот по этому поводу? Добавлено через 2 минуты Добавлено через 18 секунд Если он уже не нужен.
0
|
||||
|
137 / 107 / 23
Регистрация: 06.10.2008
Сообщений: 451
|
|
| 30.08.2016, 12:27 | |
|
Можно попробовать проверить kill(); или terminate();
Добавлено через 3 минуты Только перед вырубанием нужно сделать disconnect, а то возможно зацикливание
1
|
|
|
93 / 93 / 33
Регистрация: 17.03.2012
Сообщений: 536
|
|
| 30.08.2016, 14:19 | |
|
А еще можно к удалению QGraphicsEllipseItem прицепить слот deleteLater() процесса
1
|
|
| 30.08.2016, 14:19 | |
|
Действие по таймеру выполняется в отдельном или общем потоке Выполнение запроса по таймеру Выполнение цикла по таймеру Выполнение действия по таймеру Выполнение заданий по таймеру Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|