[Composant] Thread + Procédure
Utilisateur WDF
Inscrit:
09/06/2004 09:31
Post(s): 78
Bonjour,

je developpe aujourd'hui un composant X qui sera utilisé dans une application(projet) Y.


Premier probléme :

Dans ce composant j'ai une fenetre nommée "Interface" ouverte donc par le projet client.

L'appui sur un des boutons de cette fenetre execute le code suivant :


AD_Start()


qui est une procédure globale du composant.

Voici le code de AD_Start() :


ThreadExécute("NomThread",threadNormal,"CInterface::ThreadClient"	


Ca lance donc un thread chargé d'executer une méthode globale de class

Dans la documentation windev on peut lire :

Citation :
Si <Procédure W-Langage> est une méthode globale de classe , le "thread" est automatiquement arrêté à la fin de l'exécution du projet.


Ce que je fais est que dans cette methode globale de classe je fais un trace dans un fichier ( pour voir si mon thread travaile toujours)

Mon probléme est que dés que je ferme la fenetre mon thread est arrété


Second probléme :


j'execute ce code dans une méthode de class de mon composant :

ExécuteTraitement(:NOM_PROC,trtProcédureProjet)


où NOM_PROC représente le nom d'une procédure existante dans le projet client.

Dans la doc windev on peut lire :

Citation :
trtProcédureProjet
Exécute la procédure désignée. Cette procédure est une procédure du projet accueillant le composant WinDev / WebDev.
Ce paramètre peut être utilisé uniquement pour un composant WinDev / WebDev intégré dans un autre projet.


Cependant ca n'execute pas la procédure globale de mon projet client

Voici l'erreur :

Citation :

Exception composant Interface
Dump de l'erreur du module <WD90VM.DLL> <9.01Ga>.

- Appel WL :
Traitement de <CInterface.Transmission>, ligne <74>, thread <0>
Fonction <ExécuteTraitement>, n° de syntaxe <0>

- Niveau : erreur fatale (EL_FATAL)

- Code erreur : 1004

- Code erreur WD55 : 0

- Pas de code d'erreur système

- Pas de message d'erreur système

- Que s'est-il passé ?
Le code doit être recompilé.

- Infos de debug :
En-tête invalide
Identifiant objet : 143e5b78032965c2
Identifiant code : 00070000
Fonction (0,0)

- Infos attachées :
EIT_DATEHEURE : 13/04/2006 16:29:35
EIT_PILEWL :
Méthode Transmission(CInterface.Transmission), ligne 74
Méthode ThreadClient (CInterface.ThreadClient), ligne 30




Ai-je mal compris la doc ou alors je fais quelque chose mal ?



Merci de votre aide

Contribution le : 13/04/2006 16:50
Créer un fichier PDF de la contribution Imprimer


Re: [Composant] Thread + Procédure
Utilisateur WDF
Inscrit:
09/06/2004 09:31
Post(s): 78
Bon mon premier probléme est résolu.

Pour le résoudre en fait je lance mon thread a l'initialisation du composant et je le suspend juste la ligne en dessous

Donc dans la fenetre composant,ouverte par le projet client, l'action sur le bouton est un threadreprend.

Par contre pour le deuxiéme je cherche une autre solution...

Contribution le : 13/04/2006 17:54
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2