public Acquired(TModel model) { if (_acquired?.Model != model) { model.EnterMonitor(); _acquired = this; } Model = model; }
void IDisposable.Dispose() { var model = Model; Model = null; if (_acquired != this) { return; } _acquired = null; model.ExitMonitor(); }