Dispose
будет, вообще говоря, не вызывают Garbage Collection. Вместо этого интерфейс IDisposable
предназначен для элементов, которые нуждаются в какой-то очистке - например, они могут иметь дескриптор файла, открытый в системе, или вытащить блокировку семафора или что-то в этом направлении. Если вы хотите обеспечить, чтобы сборка мусора происходила на объекте, самое лучшее, что вы можете сделать, это убедиться, что она либо выпадает из области видимости, либо бросает ссылки на объект.
Следует отметить, что если вы взаимодействуете с объектом, который реализует IDisposable
, вы все равно должны убедиться, что Dispose()
вызывается на объекте, прежде чем вы потеряете ссылку на объект (либо с using
блоком, который также будет иметь эффект . уронить его из сферы, когда вы из using
блока, или явным вызовом Dispose()
на объекте
Резюмируя: IDisposable
и Dispose()
НЕ о детерминированной мусора, они о сигнализации для объектов сообщите им, что они могут убрать после себя - вы закончили использовать их.
Где вы это читали? Это ложь. Вообще говоря, это для детерминированной * ресурсной * очистки (например, освобождения дескрипторов ОС и т. Д.). –