|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||||||
Указатель указателя или Наследовать14.08.2020, 12:42. Показов 9502. Ответов 111
Метки нет (Все метки)
здесь
я вот тоже подумала (про своих баранов) - если у меня 2 thread'a (gui и secondary) и в secondary задан классом (как здесь), в котором работает функция, которая отдаёт массив в класс, ход обработки массива методом этого (куда отдаёт) класса - отразить в gui хочется... !?! вот передаю указатель на Form из класса gui в класс secondary worker thread... (как по примеру #222) а дальше?.. указатель на указатель параметром в др класс передавать? (что-то не проходит)? передаю банально:
как не пытаюсь передать указатель на указатель или тот же указатель на gui в др класс - выдаёт, что инициализация gui возможна только в первичном потоке... - а ведь только передать хочу указатель на то, что уже было проинициализировано в первичном потоке... т.е. на сам gui ИЛИ ??? может, мне лучше наследовать 2-й класс (loadV) от класса worker и в нём поле "принятый из gui указатель" сделать protected? (чтобы не заморачиваться передачей указателя на gui и уж тем более транслированием в gui поток из класса, куда передаём массив после его сбора в классе worker - который во вторично потоке от gui)...
0
|
||||||
| 14.08.2020, 12:42 | |
|
Ответы с готовыми решениями:
111
Как получить ссылку на указатель или указатель на указатель в массиве? |
|
19506 / 10109 / 2463
Регистрация: 30.01.2014
Сообщений: 17,833
|
||
| 19.08.2020, 23:16 | ||
|
Частные случаи функтора в С++: * Лямбда * Указатель\ссылка на функцию * Класс с переопределенным оператором ()
1
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|||||||||||||
| 20.08.2020, 10:42 [ТС] | |||||||||||||
) ... думается всё-таки, что в таком варианте (1 рабочая абстракция с 2мя потоками - 1 для view и 1 для логики) - функтор - это лишнее усложнение будет === P.S. абстракции с функтором ещё буду учиться писать - если класс MyAppWindow всё-таки разрастётся настолько, что, действительно, потребует быть декомпозированным... P.P.S. пока во вложении как-то так MyAppWindow::WorkerThread
... думаю, на практике приложится... ну хоть с абстракцией и объектом, созданным ей, разобрались - где, что и как... функтор впридачу
0
|
|||||||||||||
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,349
|
|
| 20.08.2020, 11:42 | |
|
Qt. Программа: цыплята (20 шт - 20 потоков) с разной скоростью клюют по зёрнышку с тарелки. На тарелке 100 зернышек. Когда тарелка пустеет, цыплята зовут маму, она приходит и наполняет тарелку. 20 потоков шлют сигналы в окно, и в окне отображается процесс поедания зёрен. Это то, что вы хотите?
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|||||
| 20.08.2020, 16:42 [ТС] | |||||
|
Добавлено через 9 минут возможно, 1 producer и будет несколько consumer'ов (в ооочень будущем)... пока producer'a просто сливать в txt... consumer'ы параллельно парсят и льют куда скажешь (txt или db или даже просто msgBox общее количество байт или потоков обработанных... ну и в gui gridview)... ну и обслуживающие всё это дело классы... в окно можно то, что от producer'а пока... потом то, что от consumer'ов (~600 шт), но главное - ключевые Exception'ы (даже по каждому Не по теме: вобщем, чтобы цыплята ещё сообщали, если у них несварение желудка или просто зёрна несъедобные... Добавлено через 11 минут p.s. (пока на распутье по-др нюансу [даже не этой ветки] - поэтому к этому тз ещё вернусь потом) Добавлено через 3 часа 0 минут или Semaphores (и для WindowsXP)
0
|
|||||
|
415 / 150 / 48
Регистрация: 02.06.2016
Сообщений: 364
|
|||||||||||
| 20.08.2020, 21:15 | |||||||||||
Сообщение было отмечено JeyCi как решение
Решение
1
|
|||||||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|||
| 21.08.2020, 16:57 [ТС] | |||
Благодарю! именно там и хотела GuiLock использовать по логике, где вы его указали... (слова коллбэки и макросы для меня ещё звучат страшно и по-новому - оттого и читаю по-диагонали в надежде найти знакомые для моей незрелой в ооп логики вырианты - вот и не обращаю внимание на главное, когда оно новое) Добавлено через 12 минут P.S. кстати с таким макросом формулировка "Callback Hell", вероятно, отпадает сама собой... THISFN - красиво и локанично
0
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|
| 22.08.2020, 10:04 [ТС] | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|
| 22.08.2020, 18:50 [ТС] | |
|
0
|
|
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,349
|
|||
| 28.08.2020, 11:05 | |||
|
1. Запустить несколько (много) потоков 2. Отобразить ход выполнения потоков на форме 3. По нажатию кнопки останавливать процессы (ставить на паузу) Вот в такой последовательности я бы и действовал. Нет смысла заниматься визуализацией потоков, если у вас не получается их запускать. Нет смысла заниматься остановкой процессов, если вы не видите их работу, и не можете проконтролировать старт/стоп. Ну и так далее. Начал бы я с одного потока, потом можно два, потом много. Нет смысла сразу бросаться в омут многих потоков (и получать множество ошибок), пока не отлажен хоть один. Добавлено через 1 минуту 1. Запустить несколько (много) потоков 2. Отобразить ход выполнения каждого потока на форме 3. По нажатию кнопки останавливать процессы (ставить на паузу) Вот в такой последовательности я бы и действовал. Нет смысла заниматься визуализацией потоков, если у вас не получается их запускать. Нет смысла заниматься остановкой процессов, если вы не видите их работу, и не можете проконтролировать старт/стоп. Ну и так далее. Начал бы я с одного потока, потом можно два, потом много. Нет смысла сразу бросаться в омут многих потоков (и получать множество ошибок), пока не отлажен хоть один.
0
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||||||
| 28.08.2020, 21:01 [ТС] | ||||||
|
а вообще очень много потоков лучше в thread-pool'e запускать (уже обсудили это на моей прежней ветке)... === кнопка bStopped пока нет - надеюсь, не будет шага назад... но о продолжении "линии жизни" рабочего потока ещё думаю... многое можно скинуть на сторону в др. классы... и даже др. потоки... сраслось бы всё общим планом в итоге всей архитектуры=== вот видела сегодня интересную ветку - Многопоточность и сигналы/слоты - про время жизни потока и способ его коммуникации с GUI (там линк есть)... странно оно всё как-то в Qt - переварить ещё надо
= пытаюсь прикинуть параллели с Event'ами в U++ ... и для U++фреймворка - с кнопкой для bool &bStopped - пока только такой вариант передачи или захвата вижу... - по ссылке & Добавлено через 5 минут но голова пока забита "раскадровкой" подзадач по классам... 1 класс - 1 ответственность
0
|
||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|||||||||
| 29.08.2020, 11:07 [ТС] | |||||||||
|
и здесь; Два способа использования QThread и там же совет: P.S. споткнулась вчера об эту ветку (Function) - вариант как-то синтаксически не знаю, как выразить?.. (init по линку у меня не срабатывает)Добавлено через 1 час 52 минуты только если так (без ссылки на member-function, а лямбдой) Кликните здесь для просмотра всего текста
0
|
|||||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||
| 30.08.2020, 21:27 [ТС] | ||
|
и всё-таки класс Event<> и Gate в U++ ещё поковырять...
Добавлено через 2 минуты ProcessEvents
0
|
||
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,349
|
|
| 30.08.2020, 22:37 | |
|
Допилил кнопки пауза и стоп, но работают нестабильно, иногда приложение вылетает с кодом 3 (не знаю что такое):
1
|
|
|
19506 / 10109 / 2463
Регистрация: 30.01.2014
Сообщений: 17,833
|
|
| 30.08.2020, 23:09 | |
|
alexu_007, как минимум неверный тип соединения сигнала и слота и отсутствует синхронизация разделяемых ресурсов - массива и двух булевых переменных.
0
|
|
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,349
|
|
| 30.08.2020, 23:26 | |
|
А какая там нужна синхронизация? Потоки никак не зависят друг от друга, результаты вычислений не передаются и никак не используются. Вся задача - нарисовать циферку на экране. Включилась переменная (флаг) в true - поток даже не останавливается, только перестает генерить сигналы. Уж это действительно пауза. Потоки флаг не переключают. Почему там возникает аварийное завершение - я не понимаю.
0
|
|
|
19506 / 10109 / 2463
Регистрация: 30.01.2014
Сообщений: 17,833
|
||
| 30.08.2020, 23:51 | ||
|
Тоже самое касается булевых переменных. У них изменение в основном потоке, и чтение во всех дочерних.
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|
| 31.08.2020, 18:15 [ТС] | |
|
?? вот всё-таки чисто технически:
если событие - это сигнал (отправляемый в GUI, например), например макросом коллбэка, как в примере GoshaM... слот (в Qt) надо настроить в GUI... в U++ просто запускаем member-function от gui... в C# "события - это сигналы, делегаты - это слоты" === И ОБРАТНО: в Qt при обратном запуске сигнала (из gui в поток), например, смены флага isInterruptionRequested - на стороне workerthread'a надо настроить, полагаю, слот для его приёма и обработки... имхо ?? а в U++ если кнопкой запускаем Event в btnStopped смены флага isInterruptionRequested - как правильно по уму отловить в потоке? синхронизация через мьютекс?
0
|
|
| 31.08.2020, 18:15 | |
|
Необходимость указателя на указатель Разыменование указателя на указатель Инкремент указателя на указатель
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мобильное приложение 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) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|