Re: execution d'un thread secondaire

Posté par JeromeR le 8/2/2006 11:07:29
Voila en faite dans la procédure appelée par mon thread je faits la chose suivante :

Je lance une appli externe qui créer un fichier texte et le rempli.

Une fois que le pro est lancé et que le fichier a été créer je fait une boucle qui tourne tant que mon booléen ne passe pas a faut.

Dans cette boucle j'ouvre le fichier je lit une ligne, je retiens ma position dans mon fichier.
Si la ligne que j'ai lue est différente de la fin de fichier j'appel une procédure qui analyse ce que j'ai récup et fait des traitements en fonction.


	BOUCLE
		vDoc = fOuvre(<mon_fichier_txt>,foLecture)
		SI vDoc<>-1 ALORS
				SI PositionEnCours<>0 ALORS
					fPositionne(vDoc,PositionEnCours,fpDébut)
				FIN
				PageWeb = fLitLigne(vDoc)
				PositionEnCours = fPositionne(vDoc, 0, fpCourant)
				SI (PageWeb=EOT) ALORS //(PageWeb="")ET
					attente = Vrai
					Message("Attente = vrai")
				SINON
					Message("")
					<ma_procedure>(PageWeb)	
				FIN
				res est un entier = fFerme(vDoc)
				SI res = -1 ALORS
					// Affichage du message d'erreur si la fermeture n'a pas été effectuée 
					//Erreur(ErreurInfo( errMESSAGE ))
				FIN			
				SI attente=Vrai ALORS
					Multitâche(-100)
					attente=Faux
				FIN	
		FIN
	A FAIRE TANTQUE CtiVoIP=Vrai
	ThreadArrête("mon_thread")


Voila mon code avec l'ajout d'un multitâche(-100) comme vous me l'avez conseillez dans le poste précédent.
Avec le multitâche ça fonctionne mais l'appli est tout de même un peu moins réactive que lorsque le thread secondaire ne tourne pas.
Peut-etre pourrez vous m'aider à optimiser mon code.

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=14&topic_id=3505&post_id=14810