CSharpCooking

Утечки управляемой памяти при реализации событий

В посте показано, каким образом события могут вызывать утечки управляемой памяти. Предлагаются два решения, чтобы избежать подобных утечек. Первое решение связано с реализацией метода Dispose для отмены подписки, во втором решении демонстрируется применение слабых ссылок.

Освобождение "ненужных" объектов при использовании LazyInitializer

Ленивая инициализация это способ доступа к объекту, скрывающий за собой механизм, позволяющий отложить создание этого объекта до момента первого обращения к нему. Класс LazyInitializer обеспечивает ленивую инициализацию разделяемого поля в безопасной к потокам манере. Однако, в ходе применения данного класса могут создаваться лишние объекты. В посте предлагается решение по освобождению "ненужных" объектов, которые создаются в ходе применения класса LazyInitializer для ленивой инициализации в многопоточном сценарии.