[an error occurred while processing this directive]
|
У метода Synchronize есть несколько недостатков, благодаря которым он подходит лишь для простых многопоточных приложений.
1) Synchronize полезен лишь при взаимодействии между рабочим потоком и основным потоком VCL.
2) Использование Synchronize подразумевает,что рабочий поток ждет, пока основной поток VCL будет в состоянии ожидания, даже когда это не так уж и необходимо.
3) Если приложение часто использует Synchronize, главный поток VCL становится "узким местом", и возникают проблемы с производительностью.
4) Если Synchronize используется для непосредственного взаимодействия двух рабочих потоков, оба они могут быть приостановлены, ожидая главный поток.
5) Synchronize может вызвать зацикливание, если главный поток VCL ожидает другие потоки.
Правда, у Synchronize есть и одно преимущество над другими механизмами синхронизации: В методе, вызываемом с помощью Synchronize, может быть любой код, в том числе и потоко-небезопасный код VCL.