IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

IHM Thread PostMessage GPF [WD16]


Sujet :

WinDev

  1. #21
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    je remue le couteau dans la plaie mais voici la vidéo de ce qu'on pouvait faire avec Naudio dans windev :
    Oui, mais je ne sais pas créer d'usercontrol en .Net Et tu avais dis que l'assemblage sous Windev avait des fuites de mémoire...

  2. #22
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Il faut maitriser .Net pour savoir en faire un ?

  3. #23
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    ben un peu quand même.

    Pour en revenir à ton problème. As-tu toujours des GPF quand tu mets 400 ms
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  4. #24
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    Au lieu d'utiliser les messages windows tu pourrais utiliser le MS Message Queuing de Microsoft qui est bien plus performant.

    Le composant Windows MSMQ n'est pas installé sur windows par défaut en général.
    Pour l'installer voir ici

    Voici un exemple qui envoie des données par ce procédé toutes les 50 ms dans un thread et qui affiche dans une procédure ce qui est reçu :

    Réception de messages en asynchrone (par événements)

    Dans Déclaration de ProcéduresGlobales de votre projet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    TheQueue est un objet Automation dynamique
    MonMsmq est un objet Automation "MSMQ.MSMQQueueInfo" // créer l'objet dynamique
    MonMsmqEvent est un objet Automation "MSMQ.MSMQEvent" 
    LeMessage est un objet Automation dynamique
    MonMsmq>>PathName = ".\Private$\MaFileCOM" 
    QUAND EXCEPTION DANS
    	// on crée la File si elle n'existe pas
    	MonMsmq>>Create 
    FAIRE 
    	// ceci est une supposition
    	// Info(" MaFileCOM existe déja")
    FIN
    TheQueue = MonMsmq>>Open ( 1, 0 ) 
    SI TheQueue>>isOpen ALORS	
    	AutomationEvénement("TraiteMonMessage" ,MonMsmqEvent , "{D7D6E078-DCCD-11D0-AA4B-0060970DEBAE}",0)	 	
    	TheQueue>>EnableNotification(MonMsmqEvent)	
    FIN

    la procédure globale TraiteMonMessage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PROCEDURE TraiteMonMessage(src ,curseur )
    LeMessage = src>>ReceiveCurrent()
    Trace(LeMessage>>Label + " : " + LeMessage>>Body)
    src>>EnableNotification(MonMsmqEvent)

    La procédure automatique exécutée une fois dans un thread

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    PROCEDURE TestMSQueuing()
    Queue est un objet Automation dynamique
    MonMsmq est un objet Automation "MSMQ.MSMQQueueInfo" // créer l'objet dynamique
    MonMsmq>>PathName = ".\Private$\MaFileCOM" 
    QUAND EXCEPTION DANS
    	MonMsmq>>Create 
    FAIRE 
    	// ceci est une supposition
    	Info(" MaFileCOM existe déja")
    FIN
    Queue = MonMsmq>>Open ( 2, 0 ) 
    Lemessage est un objet Automation "MSMQ.MSMQMessage"
    TANTQUE Queue>>isOpen 
    	Lemessage>>Label = "Jauge_Level"
    	Lemessage>>Body = Hasard(32767)
    	Lemessage>>Send(Queue)
    	Lemessage>>Label = "Jauge_Peak"
    	Lemessage>>Body =  Hasard(32767)
    	Lemessage>>Send(Queue)
    	ThreadPause(5)
    FIN
    Queue>>close()
    Il est à noter qu'une fois qu'on a installé MSMQ sur sa machine, on peut voir toutes les Files et les messages dans la console "Gestion de l'ordinateur" (accessible par clic droit sur Ordinateur et faire gérer). Dans Services et Applications, il y a une nouvelle rubrique qui s'appelle "Message Queuing".
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #25
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Bonsoir,

    Pour l'instant je suis repassé en thread secondaire pour alimenter la jauge car c'est ce qui plante le moins (voir pas dutout...) même si c'est déconseillé. Car même avec 1000ms de pause, ça arrive bien plus tard certes mais GPF au rapport tout de même !

    Je vais tester ton système de MSMQ

    Sinon tu fais comment pour intégrer ton usercontrol dans le champ XAML ? J'y connais rien et dans la description du champ, il attend du code...

    Merci.

  6. #26
    Membre éprouvé Avatar de WDKyle
    Homme Profil pro
    Analyste-Programmeur
    Inscrit en
    Septembre 2008
    Messages
    1 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Programmeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 200
    Points : 962
    Points
    962
    Par défaut
    Bonjour,

    Il n'y a pas de fonction Windev du genre Invoke/BeginInvoke en .NET ? Ou alors elles correspondent à PostMessage() et SendMessage() ?

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Thread/Mise a jour d'IHM
    Par davids75014 dans le forum Interfaces Graphiques en Java
    Réponses: 7
    Dernier message: 04/06/2007, 14h44
  2. [java][IHM] bloquage de fenetre + thread(?)
    Par vince3320 dans le forum Interfaces Graphiques en Java
    Réponses: 9
    Dernier message: 13/02/2007, 15h32
  3. PostMessage et fin de thread
    Par titoine1978 dans le forum MFC
    Réponses: 8
    Dernier message: 26/05/2006, 22h50
  4. [VB.NET][VS2003] Threads et IHM
    Par toniolol dans le forum Windows Forms
    Réponses: 7
    Dernier message: 27/04/2006, 13h54
  5. [SWT]mise a jour ihm SWT par un thread
    Par will82 dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 06/08/2004, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo