|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||||||
Указатель указателя или Наследовать14.08.2020, 12:42. Показов 9552. Ответов 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 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 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,350
|
|
| 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,350
|
|||
| 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,350
|
|
| 30.08.2020, 22:37 | |
|
Допилил кнопки пауза и стоп, но работают нестабильно, иногда приложение вылетает с кодом 3 (не знаю что такое):
1
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 30.08.2020, 23:09 | |
|
alexu_007, как минимум неверный тип соединения сигнала и слота и отсутствует синхронизация разделяемых ресурсов - массива и двух булевых переменных.
0
|
|
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,350
|
|
| 30.08.2020, 23:26 | |
|
А какая там нужна синхронизация? Потоки никак не зависят друг от друга, результаты вычислений не передаются и никак не используются. Вся задача - нарисовать циферку на экране. Включилась переменная (флаг) в true - поток даже не останавливается, только перестает генерить сигналы. Уж это действительно пауза. Потоки флаг не переключают. Почему там возникает аварийное завершение - я не понимаю.
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||
| 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 | |
|
Необходимость указателя на указатель Разыменование указателя на указатель Инкремент указателя на указатель
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
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) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|