Я подозреваю, что вы могли бы реализовать свой собственный объект Queue, который мог бы быть реализован, в зависимости от платформы.В Win32 он может переносить дескриптор основного окна Win32, а на какой-то другой платформе могут потребляться некоторые другие ресурсы.
Что если вы начнете прямо сейчас, сократив код конкретной платформы, до определенных модулей, которые инкапсулируютфункциональность, которая вам нужна.Это означает, что вам следует избегать использования PostMessage / SendMessage в качестве механизма, который вы непосредственно используете.
Для начала представьте, что PostMessage и SendMessage не существуют, и вам нужен способ создать очередь.Например, вы можете использовать сокеты или именованные каналы, которые существуют на большинстве платформ.Вам нужно было бы написать немного больше кода, чтобы сделать это таким образом.
В библиотеках QT они предоставляют свои собственные функции, чтобы помочь авторам приложений переписывать свои приложения C ++ для использования своих функций вместо функций Win32, поэтомуВы также можете попробовать этот подход.Функция QT postEvent является примером этого.QT также предоставляет сигналы и слоты, и это более идиоматический способ создания уведомлений в их инфраструктуре.
Возможно, способ создания уведомлений в любой новой платформе с кроссплатформенным Delphi может содержать совершенно новый способ.делать это.Это моя надежда.