Quando usiamo l'istruzione lock
, essenzialmente fa un Monitor.Enter
all'inizio del blocco e un Monitor.Exit
alla fine del blocco. Questo processo viene gestito automaticamente dal runtime.
Un comportamento simile si trova alla fine del blocco using
, chiama il metodo Dispose
di IDisposable
.
La mia domanda è che, se esiste un modo per chiamare automaticamente un metodo nell'oggetto usa e getta all'inizio del blocco using
.
Il motivo per cui voglio farlo è che ho implementato un ObservableCollection<T>
personalizzato con 2 metodi aggiuntivi: BeginUpdate
e EndUpdate
. Sono utilizzati per segnalare un processo di aggiornamento in batch. La raccolta non aumenterà l'evento modificato della raccolta finché non viene chiamato EndUpdate
.
Anche se è perfettamente corretto chiamare i 2 metodi manualmente all'inizio e alla fine del processo batch, ma sarebbe davvero bello se potessi fare qualcosa del genere:
using(myCollection)
foreach(var item in anotherBigList)
myCollection.Add(item);