Erreur ContextSwitchDeadlock

Résolu
coinki Messages postés 57 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 6 juillet 2009 - 9 févr. 2006 à 18:38
beny100 Messages postés 213 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 1 avril 2009 - 26 janv. 2007 à 09:33
Bonjour à tous,

J'ai l'erreur suivante dans mon application :

ContextSwitchDeadlock was detected
The CLR has been unable to transition from COM context 0x1c08f0 to COM context 0x1c0a60 for 60 seconds. The thread that owns the destination context/apartment is most likely either doing a non pumping wait or processing a very long running operation without pumping Windows messages. This situation generally has a negative performance impact and may even lead to the application becoming non responsive or memory usage accumulating continually over time. To avoid this problem, all single threaded apartment (STA) threads should use pumping wait primitives (such as CoWaitForMultipleHandles) and routinely pump messages during long running operations.

Est-ce que quelqu'un sait pourquoi ?

Mon application utilise MySQLDriverCS.

Merci pour vos réponses

Alain

13 réponses

cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
10 févr. 2006 à 10:02
Comme n'importe quel autre attribut :

[MTAThread]
static void Main(string[] args)
{
}

/*
coq
MVP Visual C#
*/
3
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
9 févr. 2006 à 18:50
Salut,

Il s'agit d'un application Console ou WinForm ?
L'erreur survient souvent ? (à chaque execution ?)

Sinon il me semble que MySQLDriverCS n'est plus trop maintenu, tu devrais plutôt regarder du côté du connecteur .Net fournis par MySQLAB.

/*
coq
MVP Visual C#
*/
0
coinki Messages postés 57 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 6 juillet 2009
10 févr. 2006 à 08:42
Salut,

oui, c'est une application console !
0
coinki Messages postés 57 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 6 juillet 2009
10 févr. 2006 à 08:42
L'erreur survient toujours, et au bout de 1 min !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
10 févr. 2006 à 09:44
Oui ça j'avais saisis la durée ;-)
En fait sauf erreur ce problème est dû au fait que tu fais une opération bloquante dans le thread principal de l'application, ce qui empêche la transmission correcte des messages.
Il me semble que ce problème peut être résolu via l'ajout de l'attribut MTAThread sur la méthode main.

/*
coq
MVP Visual C#
*/
0
coinki Messages postés 57 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 6 juillet 2009
10 févr. 2006 à 09:49
Merci pour l'info !!!

Mais je vois pas bien comment l'utiliser !!!
0
coinki Messages postés 57 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 6 juillet 2009
10 févr. 2006 à 10:15
Parfait, ça marche !

Merci beaucoup !!
0
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
10 févr. 2006 à 10:18
Parfait :-)

Sinon petite question pour satisfaire ma curiosité : pourquoi ce choix de MySQLDriverCS ?

/*
coq
MVP Visual C#
*/
0
coinki Messages postés 57 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 6 juillet 2009
10 févr. 2006 à 10:21
En cherchant de la doc sur la liaison C# et MySQL, tu suis tombé quasiment que sur MySQLDriverCS !!

tu me conseillerais de prendre plutôt le connecteur .Net de MySQL ?
0
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 100
10 févr. 2006 à 10:27
A priori oui : il est maintenu par l'éditeur, alors que MySQLDriverCS m'a l'air relativement.
Sinon durant tes recherches, tu as dû entendre parler du connecteur officiel sous son ancienne dénomination : ByteFx (projet externe reprit en interne par MySQL AB).

/*
coq
MVP Visual C#
*/
0
coinki Messages postés 57 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 6 juillet 2009
10 févr. 2006 à 10:28
Je vais regarder ce connecteur !!

Encore merci !
0
beny100 Messages postés 213 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 1 avril 2009
23 janv. 2007 à 19:19
merçi beaucoup mec!!!!!!!!!!
0
beny100 Messages postés 213 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 1 avril 2009
26 janv. 2007 à 09:33
bonjour, le mien n'est pas une application console, mais quant je modifie ca marche sauf que avec mes combobox je suis obligé de modifier leur paramètres  sinon mon programme refuse de se lancer pourtant modifier les paramètres  de mon combobox ne m'arrange pas parce que je dois defiler toute la liste de mon combobox ce qui est très difficile quant on veut cherche un element dont on connait le nom
aidez moi
0