|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||||
Указатель указателя или Наследовать14.08.2020, 12:42. Показов 9186. Ответов 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
Как получить ссылку на указатель или указатель на указатель в массиве? |
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 19.08.2020, 23:16 | ||
|
Частные случаи функтора в С++: * Лямбда * Указатель\ссылка на функцию * Класс с переопределенным оператором ()
1
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||||||||||||
| 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,309
|
|
| 20.08.2020, 11:42 | |
|
Qt. Программа: цыплята (20 шт - 20 потоков) с разной скоростью клюют по зёрнышку с тарелки. На тарелке 100 зернышек. Когда тарелка пустеет, цыплята зовут маму, она приходит и наполняет тарелку. 20 потоков шлют сигналы в окно, и в окне отображается процесс поедания зёрен. Это то, что вы хотите?
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||||
| 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,549
|
|||
| 21.08.2020, 16:57 [ТС] | |||
Благодарю! именно там и хотела GuiLock использовать по логике, где вы его указали... (слова коллбэки и макросы для меня ещё звучат страшно и по-новому - оттого и читаю по-диагонали в надежде найти знакомые для моей незрелой в ооп логики вырианты - вот и не обращаю внимание на главное, когда оно новое) Добавлено через 12 минут P.S. кстати с таким макросом формулировка "Callback Hell", вероятно, отпадает сама собой... THISFN - красиво и локанично
0
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 22.08.2020, 10:04 [ТС] | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 22.08.2020, 18:50 [ТС] | |
|
0
|
|
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,309
|
|||
| 28.08.2020, 11:05 | |||
|
1. Запустить несколько (много) потоков 2. Отобразить ход выполнения потоков на форме 3. По нажатию кнопки останавливать процессы (ставить на паузу) Вот в такой последовательности я бы и действовал. Нет смысла заниматься визуализацией потоков, если у вас не получается их запускать. Нет смысла заниматься остановкой процессов, если вы не видите их работу, и не можете проконтролировать старт/стоп. Ну и так далее. Начал бы я с одного потока, потом можно два, потом много. Нет смысла сразу бросаться в омут многих потоков (и получать множество ошибок), пока не отлажен хоть один. Добавлено через 1 минуту 1. Запустить несколько (много) потоков 2. Отобразить ход выполнения каждого потока на форме 3. По нажатию кнопки останавливать процессы (ставить на паузу) Вот в такой последовательности я бы и действовал. Нет смысла заниматься визуализацией потоков, если у вас не получается их запускать. Нет смысла заниматься остановкой процессов, если вы не видите их работу, и не можете проконтролировать старт/стоп. Ну и так далее. Начал бы я с одного потока, потом можно два, потом много. Нет смысла сразу бросаться в омут многих потоков (и получать множество ошибок), пока не отлажен хоть один.
0
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||||
| 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,549
|
|||||||||
| 29.08.2020, 11:07 [ТС] | |||||||||
|
и здесь; Два способа использования QThread и там же совет: P.S. споткнулась вчера об эту ветку (Function) - вариант как-то синтаксически не знаю, как выразить?.. (init по линку у меня не срабатывает)Добавлено через 1 час 52 минуты только если так (без ссылки на member-function, а лямбдой) Кликните здесь для просмотра всего текста
0
|
|||||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 30.08.2020, 21:27 [ТС] | ||
|
и всё-таки класс Event<> и Gate в U++ ещё поковырять...
Добавлено через 2 минуты ProcessEvents
0
|
||
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,309
|
|
| 30.08.2020, 22:37 | |
|
Допилил кнопки пауза и стоп, но работают нестабильно, иногда приложение вылетает с кодом 3 (не знаю что такое):
1
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 30.08.2020, 23:09 | |
|
alexu_007, как минимум неверный тип соединения сигнала и слота и отсутствует синхронизация разделяемых ресурсов - массива и двух булевых переменных.
0
|
|
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,309
|
|
| 30.08.2020, 23:26 | |
|
А какая там нужна синхронизация? Потоки никак не зависят друг от друга, результаты вычислений не передаются и никак не используются. Вся задача - нарисовать циферку на экране. Включилась переменная (флаг) в true - поток даже не останавливается, только перестает генерить сигналы. Уж это действительно пауза. Потоки флаг не переключают. Почему там возникает аварийное завершение - я не понимаю.
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 30.08.2020, 23:51 | ||
|
Тоже самое касается булевых переменных. У них изменение в основном потоке, и чтение во всех дочерних.
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 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 | |
|
Необходимость указателя на указатель Разыменование указателя на указатель Инкремент указателя на указатель
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2.
Задача: контроль уникальности строк в. . .
|
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
|
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
|
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
|
|
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
|
Своя Интернет-Компания
iceja 18.06.2026
Я программист с экономическим образованием, пишу свой проект, это SaaS для бизнесов. Мне нужен co-founder с высшим экономическим образованием, и/ или инвестор. Сейчас проект в интенсивной разработке,. . .
|
24 Мат модель здравосохранения: функциональные требования к строительству пищеблока
anaschu 18.06.2026
СРесурсами1: финансовый SD-контур, калькулятор функциональных требований пищеблока
Сегодня разделили затраты в агенте Экономика по образцу модели НАСОСЫ, добавили расчёт ROI и построили первый. . .
|
23. что сделано за последнее время.
anaschu 17.06.2026
• Эталон: Клиника НИИ питания РАМН, Москва — централизованный пищеблок, 225 коек, 180 пациентов
• Git: репозиторий med2, ветка абсентеизм. Рабочий файл: СРесурсами1_v4. alp
• Смежный проект:. . .
|