Чтобы убедиться, что текущий поток является основным потоком VCL, проверьте TThread.CurrentThread.ThreadID = MainThreadID (*).Предполагается, что основной поток VCL остается приоритетным и является единственным потоком, в котором необходимо обновить графический интерфейс, поэтому ответ на ваш вопрос - «нет».
Если вы используете последнюю версию Delphiоднако вы можете использовать TThread.CreateAnonymousThread и TThread.Synchronize, чтобы анонимные методы выполнялись либо в фоновом потоке, либо в основном потоке VCL соответственно.
*) Обратите внимание, что свойство класса CurrentThread былодобавил только несколько версий назад.Если вы используете старую версию Delphi, такую как Borland Delphi 7, вы можете выполнить эту проверку только из метода execute потока (или из любого метода, который вызывается Execute и т. Д.).