C # Cómo detectar un objeto ya está bloqueado
¿Cómo puedo detectar si un objeto está bloqueado o no?
Monitor.TryEnter
(como se describe en¿Hay alguna forma de detectar si un objeto está bloqueado?) no funciona para mí porque bloquea el objeto si no está bloqueado.
I solamente Quiero verificar si está bloqueado y en algún otro lugar de mi código usaré elMonitor
Clase para bloquear el objeto.
Sé que es posible usar, por ejemplo, un campo booleano (por ejemplo,private bool ObjectIsLocked
) pero qué detectar con el objeto de bloqueo en sí.
El siguiente código de ejemplo muestra lo que quiero hacer:
private static object myLockObject = new object();
private void SampleMethod()
{
if(myLockObject /*is not locked*/) // First check without locking it
{
...
// The object will be locked some later in the code
if(!Monitor.TryEnter(myLockObject)) return;
try
{
....
}
catch(){...}
finally
{
Monitor.Exit(myLockObject);
}
}
}