Bonjour,
J'ai un probléme un peu complexe. J'ai un executable Qt qui lance des QThread. Ces Qthread font des traitements en paralléle et lance via QProcess.start un executable. Le thread principale surveille l'ensemble et quand un QProcess se termine il va chercher le resultat de l'exe qui est terminé et le places dans un fichier final (à la suite). Ce fichier final est toujours le même, les resultats sont enquillés dedans à mesure qu'ils arrivent Tout ca est asynchrone.
Cela fonctionne trés bien sous mac ou linux mais pas sous windows ou j'ai le probléme suivant:
De maniére aléatoire, j'ai une erreur d'acces sur le fichier total qui ne peut etre modifié parce qu'il serait déjà ouvert par un des exe lancer par QProcess.
C'est trés étonnant parce que ces exe n'accédent absolument pas à ce fichier, c'est uniquement le Thread principale de management de l'ensemble.
Alors je me demande si le start de QProcess qui lance les exe peut-etre alors que je suis encore en train d'écrire de le fichier total ne laisserai pas quelquechose d'ouvert quelquepart. Mais ce serait tout de même étrange et pourquoi cela fonctionne sous les autres systémes. Je pense que c'est probablement lié à QProcess, mais je ne vois pas le probléme.
Bon c'est un peu complexe, mais au cas ou quelqu'un a un illumination, merci d'avance.
Partager