У меня есть программа, которая получает строковые сообщения от других приложений и анализирует их с помощью VCL.
Сообщения отправляются следующим образом:
AtomId := GlobalAddAtom(PChar(s));
SendMessage(MyProgramHandle, WM_MSG, 0, AtomID);
GlobalDeleteAtom(AtomID);
Моя программа получает это сообщение, некоторое время анализирует его, а затем возвращает управление приложению.
Для анализа одного сообщения требуется время, поэтому производительность других приложений ухудшается.
Одним из возможных решений является создание формы с таким же заголовком и тем же классом в другом потоке и переименование класса основной формы.
Но, насколько мне известно, не рекомендуется создавать формы в потоках.
Итак, каковы возможные способы улучшения производительности?