Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 19029|Répondre: 0

[Source] C# réalise des opérations de traversée sécurisées dans un environnement multithread

[Copié le lien]
Publié sur 18/10/2016 13:55:48 | | |

Cet article utilise List comme objet d’opération
MSDN donne officiellement la déclaration de sécurité du fil de discussion de List :
Ce type de membre statique public est sûr pour le thread. Cependant, aucun membre d’instance ne peut être garanti comme étant sûr du thread.
Tant que la collection n’est pas modifiée, List peut prendre en charge plusieurs lecteurs simultanément. L’énumération à travers un ensemble n’est pas intrinsèquement un processus sûr pour les threads. Dans le cas rare où une énumération est en concurrence avec un ou plusieurs accès d’écriture, la seule façon de protéger les threads est de verrouiller la collection pendant toute la durée de l’énumération. Pour permettre à plusieurs threads d’accéder à la collection pour des opérations de lecture et d’écriture, vous devez implémenter votre propre synchronisation.
Si vous ne synchronisez pas ?
Si un thread effectue une opération de suppression et un autre exécution une opération de traversée, alors pendant le processus, la collection est modifiée, ce qui provoquera l’apparition d’une exception InvalidOperationException, indiquant : la collection a été modifiée ; Les opérations d’énumération ne peuvent pas être effectuées.
Comment synchroniser pour garantir la sécurité de la traversée
Les zones critiques, les mutex, sont utilisés ici pour sécuriser le processus de traversée du thread, le code d’exemple est le suivant :






Précédent:Solution à l’erreur de signature jssdk du compte officiel WeChat sous China Unicom
Prochain:asp.net Gestion globale des exceptions MVC et journaux d’exception
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com