|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||
Архитектура: парсинг и выгрузка текстовиков11.03.2020, 10:51. Показов 32542. Ответов 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 архитектура драйвера и архитектура приложения" Архитектура бд Архитектура БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
|