Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
995 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] Faire tourner un module dans son propre thread

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB] Faire tourner un module dans son propre thread

n°1054217
Arjuna
Aircraft Ident.: F-MBSD
Posté le 20-04-2005 à 20:19:32  profilanswer
 

Salut.
 
Je suis en train de reprendre une application écrite en VB, et je dois l'améliorer.
 
Actuellement, dans un écran, il y a la liste des fichiers présents dans un répertoire. Ces fichiers peuvent être mis à jour pendant l'utilisation de l'appli (c'est même systématiquement le cas).
Le développeur qui est passé avant moi à foutu un timer qui recharge cette liste toutes les 60 secondes.
 
Bon, ça marche, mais le rechargement systématique est chiant (perte de focus) et surtout, quand on vient de déposer un fichier et qu'il faut attendre pour le voir, c'est lourd.
 
Je me suis penché sur l'API de Windows qui ajoute un espion sur le système de fichier, et ça marche bien. J'arrive à détecter n'importe quel changement dans le répertoire en question, et par conséquent, je vais être capable d'améliorer considérablement l'appli, notamment en raffraîchissant de façon sélective la liste (suppression ou ajout de la ligne correspondant à la modif) et en "temps réel".
 
Seulement, cette API est synchrone, c'est à dire qu'au lieu de me déclencher un évènement, elle bloque l'éxécution de mon programme, qui se met à continuer au moment où un changement se produit.
 
C'est très bien, mais ça, mais c'est pas ce que je veux : l'utilisateur doit évidement pouvoir continuer à se servir de l'appli pendant ce temps !
Je voudrais donc savoir s'il y a un moyen de mettre ça dans un module, qui tourne dans son propre thread, et soit m'envoie des évènements, soit fait lui-même la modif dans la liste.
 
Un pote m'a proposé la solution batarde qui consiste à créer une Form invisible, qui fait ça (chaque Form tourne dans son propre thread en VB), mais bon, c'est quand même assez crade... Y'a mieu ?

mood
Publicité
Posté le 20-04-2005 à 20:19:32  profilanswer
 

n°1060309
Arjuna
Aircraft Ident.: F-MBSD
Posté le 25-04-2005 à 19:59:34  profilanswer
 

Méheu :(
 
Pourquoi quand c'est moi qui pose des questions, personne ne me répond ? :cry:

n°1061897
Arjuna
Aircraft Ident.: F-MBSD
Posté le 26-04-2005 à 21:05:41  profilanswer
 

Bon, je réitère ma question...
 
Là, maintenant, c'est bloquant, il faut absolument que je m'en sorte.
 
Je dois surveiller un répertoire.
Quand il y a un changement (un ajout de fichier pour être exact), je dois déclencher une fonction dans mon programme.
 
Seulement, j'utilise l'API de Windows "FindFirstChangeNotification" avec "WaitForSingleObject", hors cette daube me pose un léger problème : elle n'est pas assynchrone, et du coup, ça bloque tout mon programme.
 
Même en mettant le code comme on m'avait dit dans une autre form invisible, ça bloque tout.
 
Comment faire ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] Faire tourner un module dans son propre thread

 

Sujets relatifs
[C] impossible d'utiliser les thread sous linux problème de linkerpetite question sur les THREAD
probleme de config de xmlspy avec le module fopenlever le "scintillement" dans un thread
Définition de threadmodule de news confortable
boost::thread... corrigez moi.faire un code propre sur mon un formulaire de verif. inscription
Peut on faire tourner du VBScript sous Apache?[JAVA] Applet qui continue à tourner apres la fermeture web.[RESOLU]
Plus de sujets relatifs à : [VB] Faire tourner un module dans son propre thread


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR