Plusieurs choses :
- utilisation des fichiers modules a proscrire, il faut préférer utiliser des classes shared ......
-> je veux bien, j'aimerais quelques infos à ce sujet à ce moment la, quelle différence entre des module de classe et des modules de fonction classique ? j'ai utilisé ça en cours à l'époque et je n'ai pas souvenir des modules de classe.
Aussi, tout ce que j'ai programmer d'autre est déjà en module classique et fonctionne bien, quelle difficulté pour convertir tout ça ?
- le bgw est un thread donc inutile d appeler un autre thread prealablement ou durant car sinon il risque d y avoir desynchronisation donc bugs de refresh UI ...etc.....
-> Jusque la ok
- le bgw possede l event ProgressChanged donc ul faut appeler la methode reportProgress dans le DoWork afin de mettre a jour l'UI.
-> C'est la que le soucis ce pose, la copie telle que je la fait actuellement, c'est une seule ligne de code (je rappelle que je copie soit un fichier unique, soit un dossier contenant plusieurs gros fichier).
En ce qui concerne la copie, j'utilisais (je pensais conserver ceci) la ligne suivante :
copyreturn = DirectoryCopy(archive.ARoot, Application.StartupPath & "\archives\" & archive.ANUM & " " archive.ANAME & " " & archive.AVERSION & "\", True)
Du coup, dans le même lapse de temps que le bgw je pensais déclencher un autre thread pour compter les fichiers déjà copier par cette ligne. Je me trompe peut être dans la manière de procédé.
Sinon, j'ai bien lu et compris le ProcessChanged et ReportProgress, je m'étais basé sur le premier exemple de MSDN pour ce faire dispo ici :
https://msdn.microsoft.com/fr-fr/lib...code-snippet-1
C'est vrai qu'en y repensant à ce niveau, pas de soucis avec l'UI, ça fonctionnais bien !
Partager