|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||
Архитектура: парсинг и выгрузка текстовиков11.03.2020, 10:51. Показов 32433. Ответов 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
|
||||||||||
| 28.06.2020, 09:36 [ТС] | ||||||||||
std::atomic
CoDo. In this pattern, the job is simply started in all threads and the code is responsible for scheduling the work. CoDo waits for all started threads to finish. Scheduling is the responsibility of client code, but can be easily managed using the std::atomic counter. This way, the overhead associated with creating lambdas and scheduling them is kept to the minimum (basically the cost of atomic increment). Once again, CoDo is based on CoWork, so CoWork::FinLock is available.
просто слово ProcessEvent давало надежду - оказалось немного не то... расковыряю WhenAction и др, и Postcallback'и - смогу точнее определиться по возможностям ide... просто интересны эти circumstances в цитате:
за ваше замечание по коллбэкам спасибо - но на него цитата выше про Call... наверно, просто правильно расставить мьютексы на GUI (хотя GUILock это и делает) - чтобы избегать тот possible race condition... имхо Добавлено через 3 минуты p.p.s и кстати, вызывая thread из thread'a - полагаю, и тот counter уже не нужен, как Atomic, если с i работает только 1 thread (в смысле пишет, читать могут два) Добавлено через 1 час 49 минут ой ... в смысле взаимодействие между ЭУ формы - это даже не взаимодействие между потоками... т.к. оба ЭУ находятся в одном потоке (GUI), а исполняющий код запущен один (а не многопоточно) - в том варианте, как я его перекроила на скорую руку... т.е. получилось обычное взаимодействие GUI и исполняющего основную рутину кода - по сути обычные 2 потока... p.p.p.s всё-таки, если уж очень захочется покреативить Observer'a можно попробовать вставить в какой код... но пока разобраться с основами возможностей... Добавлено через 32 минуты === === задача на данном этапе сводится к тому, чтобы цикл из одного класса отразить в класс myApp (GUI) и соответственно поток GUI из исполняющего потока этого класса Gui... поэтому в #209 и возник вопрос о правильности выбора инкапсуляции... - когда цикл в одном классе, а progress в другом... - как туда постучаться, да ещё и в соседний thread от исполняющего класса, т.е. его gui thread... вобщем выбора, наверно, не остаётся, кроме как принимать указатель gui в конструкторе downloader'a, а метод ShowProgress размещать не в классе Gui, а в классе Downloader... имхо
0
|
||||||||||
|
415 / 150 / 48
Регистрация: 02.06.2016
Сообщений: 364
|
|||||||
| 28.06.2020, 21:45 | |||||||
Сообщение было отмечено JeyCi как решение
РешениеКликните здесь для просмотра всего текста
1
|
|||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||||||||||
| 29.06.2020, 09:40 [ТС] | ||||||||||||
выскакивает здесь:
0
|
||||||||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 29.06.2020, 09:47 [ТС] | |
|
в пошаговом режиме
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||||||
| 29.06.2020, 13:02 [ТС] | |||||||
вероятно, проблема не в пуле потоков, а, но до фомирования cw - всё идёт ок в void Work() (который во вторичном потоке) т.е. проблема в формировании третичных и т.д. потоков? Добавлено через 1 час 9 минут GoshaM, я, конечно, понимаю, что у вас, вероятно. WIN64, а у меня WIN32 - но всё-таки выложите, пожалуйста, настройки вашего Build Method ?? Добавлено через 1 минуту (в main package configuration - MT я подключила)
0
|
|||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 29.06.2020, 14:12 [ТС] | ||
|
Добавлено через 11 минут упс на v.11863 - запустилось!! на v.13664 - не хочет...что-то где-то я уже сама доотключалась, наверное
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 29.06.2020, 14:23 [ТС] | |
и так красиво плывёт progress в ногу со status'ом... что я уже и в ThreadPool на U++ верю
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 29.06.2020, 15:33 [ТС] | ||
![]() там же всё в исполняющем потоке, а синхронизация с GUI-потоком через GUILock (который по header'у вроде на мютексе - смотреть надо)... и volatile Atomic m_pos; -- AtomicInc ( m_pos ) для progress'a... и possible race condition от Call нет, т.к. Call не используется... красивый код... буду пробовать внедрять новые идеи... и на повестке, возможно, ещё останется WorkQueue и Semaphores...
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||
| 29.06.2020, 19:06 [ТС] | ||||
|
2019.1 (rev 13068) (May 2019) - сделали они что-то:
буду смотреть, какой last stable release для win32... Добавлено через 3 минуты 2020.1 (May 2020) - вроде в Core и:
0
|
||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
| 29.06.2020, 19:53 [ТС] | |||
|
перестановила 13664 - bug остался ![]() скачала last stable 14429 - он для win64 Добавлено через 1 минуту
0
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 29.06.2020, 20:29 [ТС] | |
|
так мьютекс для manstop,
а atomic для progress_pos - насколько вижу... -- они же для разных целей... имхо... мне кажется, вы зря паникуете
0
|
|
|
|
||||||
| 29.06.2020, 20:32 | ||||||
|
Как то так:
0
|
||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 29.06.2020, 20:34 [ТС] | |
|
0
|
|
|
|
|
| 29.06.2020, 20:37 | |
|
Вы в код посмотрите,там нет вызова деструкторов. И gui блокируется дольше чем нужно.
И использовать мютексы когда есть атомарные переменные это ....
0
|
|
| 29.06.2020, 20:37 | |
|
В указанном 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 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|