|
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
|
Traduction
Source
|
LockRecursionException, classe
Espace de noms : System.Threading
Assembly : mscorlib (dans mscorlib.dll)
Le type LockRecursionException expose les membres suivants.
| Nom | Description | |
|---|---|---|
![]() ![]() ![]() | LockRecursionException() | |
![]() ![]() ![]() | LockRecursionException(String) | |
![]() | LockRecursionException(SerializationInfo, StreamingContext) | |
![]() ![]() ![]() | LockRecursionException(String, Exception) |
| Nom | Description | |
|---|---|---|
![]() ![]() ![]() | Data | |
![]() ![]() ![]() | HelpLink | |
![]() ![]() ![]() | HResult | |
![]() ![]() ![]() | InnerException | |
![]() ![]() ![]() | Message | |
![]() ![]() ![]() | Source | |
![]() ![]() ![]() | StackTrace | |
![]() | TargetSite |
| Nom | Description | |
|---|---|---|
![]() ![]() ![]() | Equals(Object) | |
![]() ![]() ![]() | Finalize | |
![]() ![]() ![]() | GetBaseException | |
![]() ![]() ![]() | GetHashCode | |
![]() | GetObjectData | |
![]() | GetType | |
![]() ![]() ![]() | MemberwiseClone | |
![]() ![]() ![]() | ToString |
| Nom | Description | |
|---|---|---|
![]() | SerializeObjectState |
Si un thread essaie d'entrer une instance de ReaderWriterLockSlim de manière récursive, que mais l'instance ne prend pas en charge la récurrence. Si un thread essaie d'entrer une instance ReaderWriterLockSlim en mode écriture ou en mode de mise à niveau alors le thread a entré à l'origine le verrou en mode lecture. Cette opération présente un risque d'interblocage potentiel et n'est donc pas autorisée. Si le fait d'autoriser un niveau de récurrence supplémentaire entraînerait le dépassement de la valeur maximale du compteur de stockage interne utilisé pour suivre les récurrences. Cette limite est si élevée que les applications ne doivent jamais la rencontrer.
Remarque |
|---|
L'attribut HostProtectionAttribute appliqué à ce type ou membre a la valeur de propriété Resources suivante : MayLeakOnAbort. HostProtectionAttribute n'affecte pas les applications bureautiques (qui sont généralement démarrées en double-cliquant sur une icône, en tapant une commande ou en entrant une URL dans un navigateur). Pour plus d'informations, consultez la classe HostProtectionAttribute ou Attributs de programmation et de protection des hôtes SQL Server. |
using System; using System.Threading; class Example { // By default, the lock recursion policy for a new // ReaderWriterLockSlim does not allow recursion. static ReaderWriterLockSlim rwls = new ReaderWriterLockSlim(); static void ThreadProc() { Console.WriteLine("Acquire the reader lock."); rwls.EnterReadLock(); try { Console.WriteLine("\nAttempt to acquire the reader lock recursively:"); rwls.EnterReadLock(); } catch (LockRecursionException lre) { Console.WriteLine("{0}: {1}", lre.GetType().Name, lre.Message); } try { Console.WriteLine("\nAttempt to acquire the writer lock recursively:"); rwls.EnterWriteLock(); } catch (LockRecursionException lre) { Console.WriteLine("{0}: {1}", lre.GetType().Name, lre.Message); } } static void Main() { Thread t = new Thread(ThreadProc); t.Start(); t.Join(); } } /* This code example produces output similar to the following: Acquire the reader lock. Attempt to acquire the reader lock recursively: LockRecursionException: Recursive read lock acquisitions not allowed in this mode. Attempt to acquire the writer lock recursively: LockRecursionException: Write lock may not be acquired with read lock held. This pattern is prone to deadlocks. Consider using the upgrade lock. */
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.



