dimanche 31 août 2014

ContextSwitchDeadlock was detected / C#

ContextSwitchDeadlock was detected Message: Le CLR n'a pas pu effectuer de transition du contexte COM 0x443080 au contexte COM 0x442f10 pendant 60 secondes. Le thread qui possède le contexte/cloisonnement de destination est probablement en train d'attendre ou de traiter une opération très longue sans pompage des messages Windows. Cette situation a généralement des effets négatifs sur les performances et peut parfois entraîner le blocage de l'application ou une utilisation ininterrompue de la mémoire. Pour éviter ce problème, tous les threads STA (Single Threaded Apartment) doivent utiliser des primitives d'attente de pompage (par exemple CoWaitForMultipleHandles) et pomper de manière régulière les messages lors des opérations qui sont longues à s'exécuter.
Un lien intéressant pour désactiver cette fonction : http://harriyott.com/2006/05/contextswitchdeadlock-was-detected