doza_and
ТС нигде не пишет как он их использует. Это ваша догадка.
Вот и я про то же, зачем переусложнять простые вещи.
Он нигде и не пишет, что всё не так и всё значительно сложнее, так что это тоже ваша догадка.
doza_and
Код программы после инициализации данных может опираться на контракт что эти данные существуют и валидны. Собственно выделение фазы инициализации для этого и нужно. Если инициализация асинхронная, то на это нельзя полагаться. Добавляется состояние программы с неинициализированными данными.
Это ошибка программиста и только, взгляните на пример вверху, значение прогрессбара по умолчанию 0, и меняется оно только внешним событием. Нет никаких неопределенностей.
doza_and
Текстовый редактор. Вы начали выполнять асинхронно процедуру создания документа, поскольку он долго грузится с диска, когда пускаешь редактор указав имя файла в командной строке.
Что будет если во время загрузки вы нажмете Save? Ничего хорошего. Надо будет предусматривать засеривание save save_as load. Или накапливать эти команды в очереди команд в тоже самое время выполняя другие команды и это все в зависимости от состояния системы.
У каждого приложения своя архитектура. В данном случае человеку нужен мониторинг событий из 2 источников, для этого вполне достаточно обойтись стандартными средствами без велосипедов.
doza_and
Если асинхронности нет, то все эти ужимки не нужны.
Под асинхронностью я понимаю, в данном случае event loop, и он тут никак не поможет.