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 ?