Pas de blocage des modèles à ma connaissance (et 12 ans d'écriture fortement multithread applications de négociation).. Mais le TimedLock classe a été d'une grande aide dans la recherche de blocages qui existent dans le code sans une reprise.
http://www.randomtree.org/eric/techblog/archives/2004/10/multithreading_is_hard.html
en gros, (dotnet/c#) vous rechercher/remplacer tous vos "lock(xxx)" les déclarations de "l'utilisation des TimedLock.De verrouillage(xxx)"
Si un blocage est jamais détecté (verrouillage ne peut être obtenu dans le délai spécifié, par défaut à 10 secondes), alors une exception est levée. Ma version locale aussi immédiatement les journaux de la stacktrace. Marcher jusqu'à la stacktrace (de préférence debug avec les numéros de ligne) et vous verrez immédiatement que les serrures ont été détenus au moment de la panne, et dans lequel il a été de tenter de l'obtenir.
Dotnet 1.1, dans une situation de blocage comme décrit, comme par hasard aurait-il tous les threads qui ont été enfermés à jeter l'exception dans le même temps. Donc, si vous voulez obtenir 2+ stacktraces, et toutes les informations nécessaires pour résoudre le problème. (2.0+ ont peut-être changé le modèle de thread en interne assez pour ne pas être cette chance, je ne suis pas sûr)