Вы можете отправлять (Windows) сообщения только тем, которые реализуют стандартный цикл сообщений, который будет автоматически создан после реализации дескриптора окна.
Однако нет необходимости использовать сообщения для связи с потоком. Просто дайте ему подождать на объекте события (TEvent в VCL) и сообщите об этом событии, когда вы хотите, чтобы поток выполнил функцию.
Но если вы новичок в многопоточности - не вдавайтесь во все эти подробности самостоятельно, если только вы не хотите обучающего эффекта. Просто используйте OmniThreadLibrary и покончите с этим. Изучив его внутренности, можно многому научиться, если вы знаете, как им пользоваться.
Edit:
См. Также ответы на этот вопрос , который очень похож.
Редактировать 2:
Относительно комментария, спрашивающего: «Что [OmniThreadLibrary] делает проще и по какой цене?» Я могу только посоветовать вам проверить это для себя - то есть, если вы используете хотя бы Delphi 2007. Есть несколько примеров для иллюстрации концепций, но для быстрого «реального» примера вы могли бы взглянуть на это сообщение в блоге - вам даже не нужно устанавливать библиотеку для этого.
Я также согласен с тем, что использование библиотеки для многопоточности требует определенного акта веры. OTOH делает то, что обеспечивает VCL, вряд ли является альтернативой. В примере кода все еще используется непродуманный вызов Synchronize (). Отсутствует поддержка таких вещей, как поточно-ориентированные очереди производителей-потребителей, которые гораздо больше подходят для многопоточного программирования. И если вы согласны с тем, что вам нужна более прочная основа для многопоточных программ, чем VCL, - зачем изобретать это колесо?
Что касается стоимости использования библиотеки: вам придется самим определять время, достаточно ли быстро для вас. ИМХО, он хорошо абстрагирует связь между потоками, но каждая абстракция, очевидно, требует производительности.
Если вы решите, что это не для вас - напишите код самостоятельно. Я сделал то же самое для Delphi 4 и использую этот код уже почти 10 лет. И, судя по количеству найденных ошибок и угловых случаев, с которыми я столкнулся за это время, я бы определенно посоветовал любому новичку в многопоточности , а не написать свой собственный код библиотеки для него. И если вы действительно очень хотите, пожалуйста, примите правила в этой публикации близко к сердцу.