Относительно управления памятью Delphi, каковы Ваши стратегии проектирования?
Вы имеете определенными некоторые прерывания или трудности со ссылкой считаемые объекты?
Спасибо за то, что обменялись Вашим опытом здесь.
Всякий раз, когда вы делитесь объектами между потоками, лучше использовать интерфейсы. Общий объект не обязательно имеет одного идентифицируемого владельца, поэтому позволить потоку, который отдает последнюю ссылку на интерфейс, освободить реализующий объект, естественно.Смотрите OmniThreadLibrary для хорошего примера того, как использовать интерфейсы как для проектирования, так и для преодоления некоторых сложных проблем владения в многопоточном коде.
Вы всегда должны отдавать предпочтение интерфейсам, если это невозможно из-за ограничений VCL. Я подозреваю, что если бы интерфейсы были доступны в Delphi 1.0, VCL выглядела бы совсем иначе.
Одно второстепенное соображение - следить за эталонными циклами. Если A имеет интерфейс с B, а B содержит интерфейс с A, они оба будут жить вечно.