Un patrón común en C++ es crear una clase que envuelve un bloqueo: el bloqueo se toma implícitamente cuando se crea un objeto o se toma explícitamente después. Cuando el objeto sale del alcance, dtor libera automáticamente el bloqueo. ¿Es posible hacer esto en C#? Por lo que entiendo, no hay garantías cuando dtor en C# se ejecutará después de que el objeto se salga del alcance.¿Es posible implementar el bloqueo de ámbito en C#?
Aclaración: Cualquier bloqueo en general, spinlock, ReaderWriterLock, lo que sea. Llamando Eliminarme derrota el propósito del patrón - liberar el bloqueo tan pronto como salgamos del alcance - sin importar si llamamos a la devolución en el medio, lanzamos una excepción o lo que sea. Además, por lo que entiendo usar todavía solo cola objeto para GC, no destruirlo de inmediato ...