|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||
Архитектура: парсинг и выгрузка текстовиков11.03.2020, 10:51. Показов 32410. Ответов 421
Метки вопросы наследования (Все метки)
начало было положено в ветке - Считать текстовые файлы из папки - там и возник вопрос об Архитектуре...
собрала... осталось отображение создать (типа I_tbl_Show) и пронаследовать ? в разные классы пункта назначения (или на консоль, или в файл, или в БД, или допустим ещё в форму)... N.B. классы (пункты-назначения) делать не надо - эти View уже реализованы разработчиками того ПО, на котором сейчас идёт работа... а) пока что можно просто прописать функции-члены класса; и по месту использовать, что надо при разработке - в файл или на консоль; б) в перспективе для Release - реализовать и откомпилировать и выгрузку и в файл, и выгрузку в БД, и отражение в DataGrid... === !! Т.Е. если в Release захочется и выгрузку в текст, и в БД, и допустим ещё в форму (например с разных кнопок сделать) - тут уж лучше и писать, как положено, наследование??... -- к слову из прошлой ветки о: === Обоснование выбора уровня Абстракции (I_tbl_Show со всеми виртуальными функциями): чтобы не дублировать код-сбора-для-выгрузки -- сделать class Table - и класс-интерфейс I_tbl_Show, в котором обозначить virtual-функции выгрузки... эти функции определить в др. классах - типа Interface (IwriteCSV, IwriteDB, IwriteDataGrid)... p.s. классы консоль, файл, бд, DataGrid - не создаём, т.к. эти пункты назначения уже присутствуют... p.p.s. вывести конечные интерфейсы с определёнными методами записи на кнопки... === ИЛИ то, что подчёркнуто чуть выше, стоит реализовать в одном классе Table, и здесь же задать все virtual функции ?? === на скрине: синие - классы, зелёные - интерфейсы (в с++ по сути тоже классы) птицами отмечены уже кое-как реализованные классы (2 птицы) курсивные стрелки - отсутствие наследования ![]() Добавлено через 7 минут вобщем вопрос: class Table и класс I_Tbl_Show - объединить или нет? Добавлено через 10 минут p.p.s. чтобы избежать проблем Ромба и такого: Неоднозначность при множественном наследовании
0
|
||||
| 11.03.2020, 10:51 | |
|
Ответы с готовыми решениями:
421
Проверка двух текстовиков
Сделать скрипт для вывода текстов из текстовиков |
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 02.07.2020, 11:26 [ТС] | ||
|
0
|
||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 02.07.2020, 11:28 | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 02.07.2020, 11:35 [ТС] | ||
|
а вызывать др callbacks - они встанут в очередь на действие "а посля" - понимаю так... имхо (и по тому WhenAction, который "удивил", начав работать "а посля") Добавлено через 6 минут - там пробовала, потом закоментировала
0
|
||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 02.07.2020, 12:06 | |
|
JeyCi, не вижу причин, чтобы это не работало. Пробуйте еще.
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||||
| 02.07.2020, 12:16 [ТС] | ||||||
|
и что самое интересное - (во вторичном потоке) -
p..s. вообще лок или сигнал в очередь на обработку - думаю не принципиально для отражения в status... когда же в GUI надо сбрасывать много рисования, например, из вторичного потока, когда ему самому ещё работать и работать - то это лишь вопрос быстродействия останется... с сигналами, возможно, и можно не тормозить сильно... но оставлять всё на "а посля" - выигрыш по времени тоже сомнительный... вобщем пробую дальше
0
|
||||||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|||
| 02.07.2020, 12:22 | |||
|
А вот гораздо более важная проблема верного распределения ответственностей решится раз и навсегда. Представьте себе художника, который рисует картину. И несколько других людей, которые в рандомные моменты времени останавливают его и дорисовывают что-то сами. Вот именно так сейчас у вас и работает. Я достаточно писал сам и видел систем, наподобие этой UPP, чтобы сказать, что это путь в никуда.
1
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
| 02.07.2020, 12:31 [ТС] | |||
|
DrOffset-у, спасибо!! за знакомство с deadlock'ом - профи всегда его распознают... пока вы Avazart, кричите, что вам мьютексы (лок) и слипы (любое действие вместо него) глаза мозолят - так и не смотрите на них, что ли... ![]() Добавлено через 7 минут
0
|
|||
| 02.07.2020, 12:31 | |
|
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 02.07.2020, 12:35 | |
|
JeyCi, в общем я понял, что пока вы сами этот кирпич не словите, будете спорить. Ну ладно, я подожду.
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
| 02.07.2020, 12:54 [ТС] | |||
|
Добавлено через 2 минуты воочию сам deadlock, чем читать о нём в книжках... или ещё какие тонкости многопоточности
0
|
|||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|||||||||||||||||
| 02.07.2020, 12:56 | |||||||||||||||||
Сообщение было отмечено JeyCi как решение
Решение
JeyCi,
main.cpp
TestThread.h
TestThread.lay
1
|
|||||||||||||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 02.07.2020, 13:42 [ТС] | ||
|
но RWLock может даже попроще, чем Mutex в U++ == За PostCallback - спасибо!! - его тоже надо было как-то увидеть воочию - с кнопки, запускающей доп. поток, который Правильно ставит в очередь свои коллбэки... увидела на родном примере - и сразу всё становится на свои места... у этого кода ноги растут нормально... Благодарю! буду изучать и применять
0
|
||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|||||||
| 02.07.2020, 13:54 | |||||||
|
JeyCi, или можно оставить GuiLock, но изменения в виджете надо делать не напрямую, а через функцию Call.
Тогда поточная функция из моего примера выглядеть будет как-то так: Кликните здесь для просмотра всего текста
Добавлено через 6 минут Добавлено через 2 минуты Это тоже, кстати, полезный навык выделять главное из цельного описания.
1
|
|||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
| 02.07.2020, 14:03 [ТС] | |||
просто реставраторы ещё и поверх нарисованного могут нарисоват, чтобы выровнять или искривить )...
0
|
|||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||||||
| 02.07.2020, 14:11 | ||||||
![]()
И работает оно так, потому что это единственный способ контролировать сложность. По-другому просто не получится.
Выстрелить это может, если у вас есть два или более потоков одновременно меняющих GUI.
1
|
||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 02.07.2020, 14:23 [ТС] | ||
|
хотя по сути задачи понадобиться WorkQueue... по сути... или одно другому не мешает (thread_pool и workqueue)?.. да ещё и выстрелить может? (в thread_pool'e? или в thread-safe workqueue'е?)
0
|
||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 02.07.2020, 14:30 | |
|
JeyCi, нет, я неправильно выше сказал. Все, что приходит из потоков будет упорядоченно очередью. Речь видимо все-таки о работе основного потока.
Проще всего не допускать этого совсем, и не разрешать менять из основного потока то, что может измениться под влиянием второстепенных.
1
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||
| 02.07.2020, 17:59 [ТС] | ||||
- вот это объяснение! - на все случаи жизни... понимание - которого мне очень не хватало, чтобы не остерегаться потоков... Thanks a lot !! ![]() Добавлено через 13 минут p.s. всё-таки добавлю: или блокировать (синхронизировать)... если вдруг случится такое, что надо всё-таки... Добавлено через 3 часа 5 минут p.p.s и чтобы, обойдя одни грабли, не попасть на вторые - я процитирую вас ещё раз p.p.p.s. про Atomic (полагаю. lock-free возможность обеспечивать thread-safety) - отдельная история - oleg-m1973 оставлял здесь (#159) линк вот и ИТОГ всех сложностей (в придачу к принципам SOLID) Добавлено через 1 минуту ... а паттерны - это уже предпочтения дизайнера - исходя из проф.опыта...
0
|
||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 03.07.2020, 09:00 [ТС] | ||
|
отметила в теме Лучшие ответы по теме - 4-й отметить не могу (видимо есть лимит) - оставлю линком на #103
0
|
||
| 03.07.2020, 09:00 | |
|
В указанном dsn архитектура драйвера и архитектура приложения не соответствуют друг другу архитектура процессоров и компьютерная архитектура,Intel32. для первокурсников Ошибка "в указанном dsn архитектура драйвера и архитектура приложения" Архитектура бд Архитектура БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|