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 :

Wait() ou Multitache() en boucle Bloque l'appli. [WD14]


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 251
    Par défaut Wait() ou Multitache() en boucle Bloque l'appli.
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    B_Res:
    	HSurErreur(Res,hErrBlocage,"")
    	SI PAS HLitRecherchePremier(Res,IdRes,Res.IdRes,hBlocageEcriture) ALORS
    		SI HErreur() ALORS
    			SI HErreurBlocage() ALORS
    				Wait(100)
     
    				GOTO B_Res	
    			FIN
    			HDébloqueFichier(Ocu)
     
    			RETOUR
    		FIN
    	FIN
    	HSurErreur("*",hErrTout)
    En cas de blocage, l'application est bloquée, pas de posibilité de cliquer un autre menu, bouger la fenêtre, seul le double clic réagit.
    Est-ce normal?
    J'ai remplacé Wait par Multitache et c'est pareil.

    Merci

  2. #2
    Membre Expert

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

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

    Avez-vous regardé l'aide de ces fonctions ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 251
    Par défaut
    Oui, j'ai lu la doc des fonctions.
    Multitache doit redonnez la main au système, et il le fait.
    Mais l'appli ne répond pas, tout reste à l'attente du d´blocage.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 47
    Par défaut
    utilises Multitache(-100)

    pour une durée négative, windev rend la main à windows et donc tu pourras cliquer sur un bouton annuler qui position bFin à Vrai

    Ajoutes un booléen à ta boucle remplit par ton bouton annule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SI HErreurBlocage() _ET_ PAS bFin ALORS
    		Wait(100)
     
    		GOTO B_Res	
    FIN

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 251
    Par défaut
    Citation Envoyé par devwd Voir le message
    utilises Multitache(-100)

    pour une durée négative, windev rend la main à windows et donc tu pourras cliquer sur un bouton annuler qui position bFin à Vrai

    Ajoutes un booléen à ta boucle remplit par ton bouton annule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SI HErreurBlocage() _ET_ PAS bFin ALORS
    		Wait(100)
     
    		GOTO B_Res	
    FIN
    En fait je ne veux pas sortir de la boucle, c'est normal qu'elle dure longtemps.
    Ce que je veux c'est que l’utilisateur puisse faire autre chose en attendant.
    Donc que le reste de l'appli continue à fonctionner. Ce n'est pas le cas, la fenêtre principale qui contient le menu ne veut rien savoir.

    J'ai essayé de cliquer un bouton comme tu indiques, mais c'est pas possible, l'appli ne réagit pas.
    Donc si toi tu peux le faire c'est que j'ai quelque chose mal paramétré ou mal programmé.
    Merci

  6. #6
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Par défaut
    C'est ce que vient de te dire devwd.
    Si tu utilises MultiTache(-100), tu pourras faire ce que tu veux dans l'application.

  7. #7
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 402
    Par défaut
    Salut à toi,

    Tu as également les threads secondaires qui peuvent s'occuper d'un traitement en tâche de fond du thread principal.

  8. #8
    Membre Expert
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Par défaut
    le multitache() te permet de reprendre la main malgré le blocage mais comme tu fais un goto juste après, il revient dans le traitement aussi sec ... Il faudrait peut-être voir à mettre un flag pour savoir si tu n'es pas en train de boucler sur ton Goto

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. C++ problème de boucle qui bloque l'appli
    Par ame_12 dans le forum C++
    Réponses: 2
    Dernier message: 03/07/2013, 17h22
  2. Méthode Wait,Sleep dans une boucle
    Par kilian68 dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 17/12/2009, 12h50
  3. [C#] mon appli bloque le reboot du PC
    Par Nacros dans le forum Windows Forms
    Réponses: 13
    Dernier message: 15/08/2006, 14h38
  4. [VB.Net] wait dans une boucle
    Par lucie.houel dans le forum ASP.NET
    Réponses: 6
    Dernier message: 17/06/2005, 15h52
  5. Réponses: 2
    Dernier message: 23/03/2004, 13h23

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