Bonjour,
au moment de l'exécution de mon application et sur click d'un bouton,j'ai eu le message d'erreur sur l'image ci-joint,mais je n'ai pas compris que cela veut dire.
Merci si quelqu'un pourra m'expliquer le problème
Version imprimable
Bonjour,
au moment de l'exécution de mon application et sur click d'un bouton,j'ai eu le message d'erreur sur l'image ci-joint,mais je n'ai pas compris que cela veut dire.
Merci si quelqu'un pourra m'expliquer le problème
Bonjour,
Que fait ta fonction Sleep ?
Comment importes-tu ta Dll et quelle est ta plateforme de solution(x86/x64/AnyCPU) ?
je l'ai déclaré comme:et normalement elle fait attendre un certain temps(300 ms ici) avant d'exécuter la ligne suivante du code.Code:Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)
La plate forme est x86 et je n'ai pas importé de dll
voilà.merci
Bonjour,
Remplacez "Long" par "Integer".
D'autre part, la méthode existe déjà :Code:Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Integer)
Cordialement,Code:System.Threading.Thread.CurrentThread.Sleep(300)
on ne fait de comm sur le thread principal, ni de sleep
une processus (exe qui tourne) peut héberger plusieurs threads
quand on fait du pas à pas il y a une ligne jaune qui montre la ligne exécutée, avec plusieurs threads, il y a plusieurs lignes qui avancent en même temps
par défaut sur une application tu es sur le thread principal, aussi appelé thread d'UI
le rendu de l'interface est fait sur ce thread, tout comme le code que tu écris actuellement
quand on fait un traitement long, l'interface ne peut pas se rafraichir, ca mène alors à un "ne répond pas" de windows
aussi pour des choses qui dépassent quelques centaines de millisecondes, ou pour des choses qui peuvent de temps en temps êtres longues il convient de créer un nouveau thread pour ne pas bloquer l'interface, et éviter des soucis de pompes à message
par exemple une connexion à une base de données même si elle est rapide, le jour ou la base ne réponds pas l'interface va bloquer quelques secondes, donc c'est dommage de bloquer l'interface
pour de la communication, on ne sait pas si l'autre côté va répondre, on ne sait pas au bout de combien de temps, toi tu as visiblement un séquenceur avec des temps d'attente à respecter, si tu fais ca sur le thread principal ca bloque l'interface, ca peut arriver à un message d'erreur COM si windows est pas content
par contre le multithreading c'est pas forcément pour les débutants, donc on pourrait en déduire que la comm non plus ...
Merci pour les informations,j'ai lu le concept de multithreading sur le site de la msdn,et d'après ce que j'ai compris je dois créer au moins deux autres threads:un pour les serialports et l'autre pour la connexion à la base de données.mais comme tu as dit,pol63, c'est un peu dur de gérer de multithreading et l'attribution des priorités