Re[2]: Порядок закрытия FileStream в Dispose
От: Fortnum  
Дата: 15.09.14 04:58
Оценка:
Здравствуйте, TK, Вы писали:

F>>Предположим, есть некий класс A, у которого 2 поля типа FileStream, каким-то образом инициализируются. Если для внутреннего употребления надо сделать так, чтобы эти FileStream'ы в определенном порядке деинициализировались, я правильно понимаю, что шаблон Dispose будет ошибочным вариантом, т.к. в момент исполнения A.Dispose эти FileStream'ы уже могут быть закрыты GC?

TK>Вы путаете Dispose и Finalize. GC знает только про Finalize. Шаблон Dispose — это реализация IDisposable и использование в нем финализатора в большинстве случаев неправильно.

Это понятно, что GC не знает про Dispose. Но почему вызов Dispose из финализатора — это неправильно?

F>>Как лучше сделать для своего внутреннего употребления?

TK>Для внутреннего применения лучше следить за созданными A и своевременно вызывать Dispose.

Так ведь фишка финализатора в том, что можно не следить, разве не так?

TK>Если будет спокойнее то и A.List<FileStream> тоже мало чего гарантирует


А вот это почему? Статический же.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.