Utiliser (et simplifier) un readerwriterlockslim avec using pour ne libérer que le verrou correspondant.

Description

Permet de simplifier et de sécuriser l'utilisation d'un ReaderWriterLockSlim (verrou utilisé pour gérer l'accès à une ressource, en autorisant plusieurs threads pour la lecture ou un accès exclusif en écriture).
Exemples pour clarifier le propos :

//Au lieu de...
ReaderWriterLockSlim rws = new ReaderWriterLockSlim();
rws.EnterReadLock();
try
{
// Traitement...
}
catch (Exception ex)
{
// Traitement de l'exception...
}
finally
{
rws.ExitReadLock();// Et il ne faut pas se tromper sur la méthode à utiliser.
}

// On aura...
cReaderWriterLockSlimEtUsing rw = new cReaderWriterLockSlimEtUsing();

// Utilisation basique pour un verrou en lecture...
using (rw.EnterReadLock())
{
// Traitement...
}// Ici, le verrou sera retiré ('ExitReadLock()' automatique) même s'il y a un 'return' ou une exception dans les accolades.

// Avec un timing sur l'obtention du verrou...
using (var locker = rw.TryEnterReadLock(5000))
{
if (locker.Ok)
{
// Traitement...
}
}// Même commentaire que ci-dessus.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.