Если все потоки вашего приложения написаны на Delphi-коде, рассмотрите возможность использования OmniThreadLibrary и использования предоставляемых им сервисов вместо сырых Win32 API или встроенных функций TThread, что довольно неплохо в последних версиях Delphi.
Однако для сигнализации потоков и их отключения, особенно там, где не все потоки создаются и управляются объектами Delphi THread, вам придется выполнить большую часть проектирования, и вам, вероятно, придетсяобъедините несколько примитивов Win32 вместе, чтобы создать достойное решение.Я бы использовал событие Win32 и сигнальные потоки, написанные на C / C ++, используя дескриптор события Win32, например.
Для чистой 100% -ной кодовой базы Delphi я просто использовал бы все, что хорошо протестировано, и использовал бы API-интерфейсы TThread или OmniThreadLibrary вместо того, чтобы переходить к сырому Win32 API.