|
262 / 151 / 33
Регистрация: 29.06.2019
Сообщений: 1,515
|
||||||
Указатель указателя или Наследовать14.08.2020, 12:42. Показов 8568. Ответов 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
Как получить ссылку на указатель или указатель на указатель в массиве? |
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 19.08.2020, 23:16 | ||
|
Частные случаи функтора в С++: * Лямбда * Указатель\ссылка на функцию * Класс с переопределенным оператором ()
1
|
||
|
262 / 151 / 33
Регистрация: 29.06.2019
Сообщений: 1,515
|
|||||||||||||
| 20.08.2020, 10:42 [ТС] | |||||||||||||
) ... думается всё-таки, что в таком варианте (1 рабочая абстракция с 2мя потоками - 1 для view и 1 для логики) - функтор - это лишнее усложнение будет === P.S. абстракции с функтором ещё буду учиться писать - если класс MyAppWindow всё-таки разрастётся настолько, что, действительно, потребует быть декомпозированным... P.P.S. пока во вложении как-то так MyAppWindow::WorkerThread
... думаю, на практике приложится... ну хоть с абстракцией и объектом, созданным ей, разобрались - где, что и как... функтор впридачу
0
|
|||||||||||||
|
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,267
|
|
| 20.08.2020, 11:42 | |
|
Qt. Программа: цыплята (20 шт - 20 потоков) с разной скоростью клюют по зёрнышку с тарелки. На тарелке 100 зернышек. Когда тарелка пустеет, цыплята зовут маму, она приходит и наполняет тарелку. 20 потоков шлют сигналы в окно, и в окне отображается процесс поедания зёрен. Это то, что вы хотите?
0
|
|
|
262 / 151 / 33
Регистрация: 29.06.2019
Сообщений: 1,515
|
|||||
| 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
|
|||||||||||
|
262 / 151 / 33
Регистрация: 29.06.2019
Сообщений: 1,515
|
|||
| 21.08.2020, 16:57 [ТС] | |||
Благодарю! именно там и хотела GuiLock использовать по логике, где вы его указали... (слова коллбэки и макросы для меня ещё звучат страшно и по-новому - оттого и читаю по-диагонали в надежде найти знакомые для моей незрелой в ооп логики вырианты - вот и не обращаю внимание на главное, когда оно новое) Добавлено через 12 минут P.S. кстати с таким макросом формулировка "Callback Hell", вероятно, отпадает сама собой... THISFN - красиво и локанично
0
|
|||
|
262 / 151 / 33
Регистрация: 29.06.2019
Сообщений: 1,515
|
|
| 22.08.2020, 10:04 [ТС] | |
|
0
|
|
|
262 / 151 / 33
Регистрация: 29.06.2019
Сообщений: 1,515
|
|
| 22.08.2020, 18:50 [ТС] | |
|
0
|
|
|
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,267
|
|||
| 28.08.2020, 11:05 | |||
|
1. Запустить несколько (много) потоков 2. Отобразить ход выполнения потоков на форме 3. По нажатию кнопки останавливать процессы (ставить на паузу) Вот в такой последовательности я бы и действовал. Нет смысла заниматься визуализацией потоков, если у вас не получается их запускать. Нет смысла заниматься остановкой процессов, если вы не видите их работу, и не можете проконтролировать старт/стоп. Ну и так далее. Начал бы я с одного потока, потом можно два, потом много. Нет смысла сразу бросаться в омут многих потоков (и получать множество ошибок), пока не отлажен хоть один. Добавлено через 1 минуту 1. Запустить несколько (много) потоков 2. Отобразить ход выполнения каждого потока на форме 3. По нажатию кнопки останавливать процессы (ставить на паузу) Вот в такой последовательности я бы и действовал. Нет смысла заниматься визуализацией потоков, если у вас не получается их запускать. Нет смысла заниматься остановкой процессов, если вы не видите их работу, и не можете проконтролировать старт/стоп. Ну и так далее. Начал бы я с одного потока, потом можно два, потом много. Нет смысла сразу бросаться в омут многих потоков (и получать множество ошибок), пока не отлажен хоть один.
0
|
|||
|
262 / 151 / 33
Регистрация: 29.06.2019
Сообщений: 1,515
|
||||||
| 28.08.2020, 21:01 [ТС] | ||||||
|
а вообще очень много потоков лучше в thread-pool'e запускать (уже обсудили это на моей прежней ветке)... === кнопка bStopped пока нет - надеюсь, не будет шага назад... но о продолжении "линии жизни" рабочего потока ещё думаю... многое можно скинуть на сторону в др. классы... и даже др. потоки... сраслось бы всё общим планом в итоге всей архитектуры=== вот видела сегодня интересную ветку - Многопоточность и сигналы/слоты - про время жизни потока и способ его коммуникации с GUI (там линк есть)... странно оно всё как-то в Qt - переварить ещё надо
= пытаюсь прикинуть параллели с Event'ами в U++ ... и для U++фреймворка - с кнопкой для bool &bStopped - пока только такой вариант передачи или захвата вижу... - по ссылке & Добавлено через 5 минут но голова пока забита "раскадровкой" подзадач по классам... 1 класс - 1 ответственность
0
|
||||||
|
262 / 151 / 33
Регистрация: 29.06.2019
Сообщений: 1,515
|
|||||||||
| 29.08.2020, 11:07 [ТС] | |||||||||
|
и здесь; Два способа использования QThread и там же совет: P.S. споткнулась вчера об эту ветку (Function) - вариант как-то синтаксически не знаю, как выразить?.. (init по линку у меня не срабатывает)Добавлено через 1 час 52 минуты только если так (без ссылки на member-function, а лямбдой) Кликните здесь для просмотра всего текста
0
|
|||||||||
|
262 / 151 / 33
Регистрация: 29.06.2019
Сообщений: 1,515
|
||
| 30.08.2020, 21:27 [ТС] | ||
|
и всё-таки класс Event<> и Gate в U++ ещё поковырять...
Добавлено через 2 минуты ProcessEvents
0
|
||
|
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,267
|
|
| 30.08.2020, 22:37 | |
|
Допилил кнопки пауза и стоп, но работают нестабильно, иногда приложение вылетает с кодом 3 (не знаю что такое):
1
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 30.08.2020, 23:09 | |
|
alexu_007, как минимум неверный тип соединения сигнала и слота и отсутствует синхронизация разделяемых ресурсов - массива и двух булевых переменных.
0
|
|
|
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,267
|
|
| 30.08.2020, 23:26 | |
|
А какая там нужна синхронизация? Потоки никак не зависят друг от друга, результаты вычислений не передаются и никак не используются. Вся задача - нарисовать циферку на экране. Включилась переменная (флаг) в true - поток даже не останавливается, только перестает генерить сигналы. Уж это действительно пауза. Потоки флаг не переключают. Почему там возникает аварийное завершение - я не понимаю.
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 30.08.2020, 23:51 | ||
|
Тоже самое касается булевых переменных. У них изменение в основном потоке, и чтение во всех дочерних.
0
|
||
|
262 / 151 / 33
Регистрация: 29.06.2019
Сообщений: 1,515
|
|
| 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 | |
|
Помогаю со студенческими работами здесь
60
Необходимость указателя на указатель Разыменование указателя на указатель Инкремент указателя на указатель
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|