Re[8]: Как такое написать по Сиплюсплюсному?
От: kov_serg Россия  
Дата: 24.03.25 15:46
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>До тех пор, пока в арифметике операций с указателями не ошибся.

А чего бы это. Если не нравятся указатели всегда можно перейти к handles(ухватам) они гарантированно могут быть валидированы в любой момент.

BFE> Если применять патерны C на С++, то так и получается.

BFE>А вот если использовать нормальный патерн, вроде signal-slot или, там std::future / std::async / std::promise, то код будет выглядеть совсем иначе.
signal-slot как в qt забабахав предкомпиляцию, что бы весь треш спрятать под ковёр.

futute/promise никаких гарантий не дают и общаться с рабочим потоком прдётся через свои прослойки. Если можете показать как это элегантно сделать — покажите.


BFE>Вариант, как вариант, видал я и позабористей. А вот то, что хорош — нет: если GUIWindow умрет раньше Workers, то это "всё", "падаем".

нет. Тут как раз при убийстве GUIWindow вызывается done он посылает всем работникам сигнал отмены, и ждёт завершениея и диспетчиризирует остатки сообщений, при этом гарантировано если был вызван begin будет вызван end.
И все работники гарантировано освободят ресурсы, у них тоже довольно структурированный вид, и они не подозревают в каком потоке работают.

BFE>Известно как — запомнить указатель и вернуть его.

BFE>Хотите экономить на спичках, пишите в C стиле: без виртуальности и наследований.
Причем тут виртуальность и наследование. Просто в C++ нет единообразия, для разных сущностей всё делается по своему. Так и указатели на члены класса это отдельная песня.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.