IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Gestion d'un fenêtre dans un thread différent


Sujet :

WinDev

  1. #21
    Membre Expert Avatar de klbsjpolp
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 065
    Par défaut
    Citation Envoyé par =JBO= Voir le message
    A partir d'un thread secondaire, il est possible d'agir directement sur les champs affichés dans une fenêtre.
    Windev permet effectivement de manipuler les objets graphiques d'après leur documentation. Par contre, j'ai vu plusieurs problèmes (plantages) d'application qui utilisait des fonctions d'affichage, surtout liées aux tables mais pas nécessairement fichier. Je suis donc toujours un peu réticent et je préfère mettre un sablier dans ma fenêtre que de me lancer à déboguer des threads de recherche ou de remplissage.

    On peut donc le faire, mais attention quand même et teste souvent.

  2. #22
    Membre Expert

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Par défaut
    Quel que soit le langage de développement, la programmation de threads (ou de processus) concurrents est toujours délicate.
    Elle impose une programmation spécifique rigoureuse, qui se base sur les fonctionnalités comme les sémaphores et les sections critiques.

    Un programmeur non-averti pourrait croire, à tort, que c'est évident à programmer.

    Dans le cas de WinDev et d'une interface utilisateur "multi-thread", il faudra sûrement faire attention lorsque l'utilisateur déclenche les traitements de la fenêtre (clique sur un bouton, rafraîchit le contenu d'un champ table...) à ce que l'exécution du traitement se fasse sans conflit avec le thread secondaire (utilisation d'un sémaphore ?).

    Si la fenêtre ne sert qu'à afficher, sans possibilité pour l'utilisateur d'agir dans la fenêtre, alors ça ne devrait pas présenter de gros risques.

    Il faudra aussi fermer "en douceur" la fenêtre, par exemple:
    • masquer la fenêtre,
    • signaler au thread secondaire qu'il doit s'arrêter,
    • attendre que le thread secondaire soit effectivement terminé (ça peut prendre un certain temps s'il est en train d'exécuter une requête),
    • fermer "vraiment" la fenêtre.

    _

  3. #23
    Membre Expert
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 383
    Par défaut
    Bonjour

    Concernant la manipulation de l'interface dans un thread j'avais remonté un problème au service technique. Suite à une mise à jour de Windev le contenu d'un champ de la fenêtre n'était plus accessible depuis un thread secondaire.
    J'ai eu une réponse dont notamment cette phrase :

    Pour en revenir à votre problème de thread, notre équipe développement travail toujours sur cet incident. Cependant, nous ne recommandons absolument pas d'accéder aux objets des fenêtres de votre projet depuis un thread et ce quelque soit la version de WinDev.

  4. #24
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Par défaut
    Salut hpascal,

    Ta précision me réconforte un peu car l'unique fois où j'ai joué avec les threads et l'ihm, j'ai fait une usine à gaz pour que le thread principal s'occupe de l'ihm avec des données servies par un thread secondaire. Usine à gaz qui me semblait parfaitement logique et nécessaire.

    Avec la remarque de JBO, j'ai cru un moment que j'avais fait ça pour rien . Donc merci hpascal, en ce lundi matin, tu as mis un terme aux questions existentielles qui pourrissaient gentiment mon week end !

Discussions similaires

  1. nouvelle fenêtre dans un navigateur différent
    Par asmoth dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/03/2007, 12h56
  2. Gestion d'un IdIcmpClient dans un thread
    Par yamino dans le forum Delphi
    Réponses: 3
    Dernier message: 27/12/2006, 13h21
  3. [VB.NET] Création MDIChild dans un thread différent
    Par XnoTonio dans le forum Windows Forms
    Réponses: 5
    Dernier message: 19/05/2006, 15h53
  4. afficher une fenêtre dans le thread
    Par LN(a) dans le forum Langage
    Réponses: 8
    Dernier message: 21/12/2005, 13h21
  5. Gestion des message windows dans les threads
    Par billyboy dans le forum Windows
    Réponses: 5
    Dernier message: 06/10/2003, 17h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo