Gros problème avec les threads et la lecture des fichiers..
Gros problème avec les threads et la lecture des fichiers..
Salut,
La j'ai un problème avec un code qui lis 2 fichier en même temps avec des thread et qui les affiche dans un gadget.
Le problème c'est que le résultat est aléatoire,
Voici le lien vers le fichier source qui lis 2 fichier et les affiches. Ragardez bien le contenu du fichier de chaque fichier
http://heisspiter.no-ip.com/~julien/Pur ... Erreur.zip
Merci de votre aide
La j'ai un problème avec un code qui lis 2 fichier en même temps avec des thread et qui les affiche dans un gadget.
Le problème c'est que le résultat est aléatoire,
Voici le lien vers le fichier source qui lis 2 fichier et les affiches. Ragardez bien le contenu du fichier de chaque fichier
http://heisspiter.no-ip.com/~julien/Pur ... Erreur.zip
Merci de votre aide
En principe il faudrait rajouter un UseFile(res) avant les ReadString().
Je ne suis pas certain que les erreurs disparaîtront pour toujours, mais cela peut suffire.
Slts
Je ne suis pas certain que les erreurs disparaîtront pour toujours, mais cela peut suffire.
Slts
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
La demande du ReadString(#) a été faite ... plus qu'à prier pour qu'elle arrive bientôt.
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
Merci de votre aide, je galéré sur ce problème depuis hier, et je ne trouverai pas le problème.
Pour le moment je vais faire comme ceci
Je ne sais pas si c'est bien "propre" (source d'erreur ?) comme programation mais ça marche
Pour le moment je vais faire comme ceci
Code : Tout sélectionner
Procedure charge()
lire2()
lire1()
EndProcedure
CreateThread(@charge(),0)
Peut-être qu'il n'y aurait plus de problème en utilisant lof et fileseek dans les procédures (évidemment, usefile est indispensable): dans chaque proc tu crées une var locale pos. après le readstring, tu fais pos=loc()
avant le readstring, tu fais fileseek(pos).
Mais ça dépend. le pb, c'est que l'on ne sait pas quand le thread 1 passe la main au thread 2. ça pourrait être entre le readstring et le pos=loc().
Si tu veux entièrement sécuriser ça, faut mettre un mutex. Vite indispensable quand il y a plusieurs threads qui tournent en même temps.
Là, je dois sortir. En rentrant, si personne ne l'a fait entre temps, je mets un tuto "mutex" dans "débutant".
C'est tout bête, mais faut savoir.
avant le readstring, tu fais fileseek(pos).
Mais ça dépend. le pb, c'est que l'on ne sait pas quand le thread 1 passe la main au thread 2. ça pourrait être entre le readstring et le pos=loc().
Si tu veux entièrement sécuriser ça, faut mettre un mutex. Vite indispensable quand il y a plusieurs threads qui tournent en même temps.
Là, je dois sortir. En rentrant, si personne ne l'a fait entre temps, je mets un tuto "mutex" dans "débutant".
C'est tout bête, mais faut savoir.