Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Rendre la main à windows

7 réponses
Avatar
Frédéric LAMBOUR
Mon application windows fait un traitement assez long dans une boucle.

Durant toutes la durée de ce traitement le gestionnaire des tâches indique
Pas de réponse pour mon application.
Comment rendre la main à windows dans ma boucle pour obtenir un état : en
cours exécution ?

J'ai essayé Refresh() mais sans résultat (autre que graphique).

7 réponses

Avatar
Stéphane L.
Bonjour Frédéric,

Je pense que ceci devrait convenir :
Application.DoEvents()

Cordialement,
Stéphane

"Frédéric LAMBOUR" a écrit dans le message
de news:%
Mon application windows fait un traitement assez long dans une boucle.

Durant toutes la durée de ce traitement le gestionnaire des tâches indique
Pas de réponse pour mon application.
Comment rendre la main à windows dans ma boucle pour obtenir un état : en
cours exécution ?

J'ai essayé Refresh() mais sans résultat (autre que graphique).




Avatar
Sylvain Audet
Bonjour Frédéric,
Je ne suis pas certain de bien comprendre la question, mais pour
effectuer de longues tâches de façon asynchrones, tu dois utiliser des
Threads, sinon le thread principal gèle l'interface de l'utilisateur jusqu'à
ce que la tâche soit terminée.

J'ai écrit 2 articles sur le sujet sur http://dotnet-fr.org; je
t'invites à y jeter un oeil :

Optimisez votre application à l'aide des "threads"! (Thread partie 1) :
http://www.dotnet-fr.org/sections.php3?op=viewarticle&artidf
Exécution de tâches asynchrones avec les "delegates" (Thread partie 2) :
http://www.dotnet-fr.org/sections.php3?op=viewarticle&artidh

Bonne chance! :o)
--
Sylvain Audet - MCP+SB
Visitez les astuces .NET sur dotNET-fr.org
http://www.dotnet-fr.org/sections.php3?op=listarticles&secid=6

"Frédéric LAMBOUR" wrote in message
news:%
Mon application windows fait un traitement assez long dans une boucle.

Durant toutes la durée de ce traitement le gestionnaire des tâches indique
Pas de réponse pour mon application.
Comment rendre la main à windows dans ma boucle pour obtenir un état : en
cours exécution ?

J'ai essayé Refresh() mais sans résultat (autre que graphique).




Avatar
Frédéric LAMBOUR
C'est ça ! Merci beaucoup !

"Stéphane L." a écrit dans le message de
news:
Bonjour Frédéric,

Je pense que ceci devrait convenir :
Application.DoEvents()

Cordialement,
Stéphane

"Frédéric LAMBOUR" a écrit dans le


message
de news:%
> Mon application windows fait un traitement assez long dans une boucle.
>
> Durant toutes la durée de ce traitement le gestionnaire des tâches


indique
> Pas de réponse pour mon application.
> Comment rendre la main à windows dans ma boucle pour obtenir un état :


en
> cours exécution ?
>
> J'ai essayé Refresh() mais sans résultat (autre que graphique).
>
>




Avatar
Frédéric LAMBOUR
Comme la réponse ci-dessus il suffit de faire Application.DoEvents() dans la
boucle (à intervalle régulié) et le tour est joué !
C'est bien les Thread mais j'étais persuadé que je pouvais m'en passer.



"Sylvain Audet" a écrit dans le message de
news:%
Bonjour Frédéric,
Je ne suis pas certain de bien comprendre la question, mais pour
effectuer de longues tâches de façon asynchrones, tu dois utiliser des
Threads, sinon le thread principal gèle l'interface de l'utilisateur


jusqu'à
ce que la tâche soit terminée.

J'ai écrit 2 articles sur le sujet sur http://dotnet-fr.org; je
t'invites à y jeter un oeil :

Optimisez votre application à l'aide des "threads"! (Thread partie 1) :
http://www.dotnet-fr.org/sections.php3?op=viewarticle&artidf
Exécution de tâches asynchrones avec les "delegates" (Thread partie 2) :
http://www.dotnet-fr.org/sections.php3?op=viewarticle&artidh

Bonne chance! :o)
--
Sylvain Audet - MCP+SB
Visitez les astuces .NET sur dotNET-fr.org
http://www.dotnet-fr.org/sections.php3?op=listarticles&secid=6

"Frédéric LAMBOUR" wrote in message
news:%
> Mon application windows fait un traitement assez long dans une boucle.
>
> Durant toutes la durée de ce traitement le gestionnaire des tâches


indique
> Pas de réponse pour mon application.
> Comment rendre la main à windows dans ma boucle pour obtenir un état :


en
> cours exécution ?
>
> J'ai essayé Refresh() mais sans résultat (autre que graphique).
>
>




Avatar
Ghislain Proulx
Les Thread sont par contre bien plus efficace dans ta situation que
Application.DoEvents qui n'a pas vraiment d'autres choix que de ± arrêter
ton traitement pour faire des rafraichissements d'écran, etc... choses qu'un
Thread n'a pas besoin de faire.

"Frédéric LAMBOUR" a écrit dans le message
de news:
Comme la réponse ci-dessus il suffit de faire Application.DoEvents() dans


la
boucle (à intervalle régulié) et le tour est joué !
C'est bien les Thread mais j'étais persuadé que je pouvais m'en passer.



"Sylvain Audet" a écrit dans le message de
news:%
> Bonjour Frédéric,
> Je ne suis pas certain de bien comprendre la question, mais pour
> effectuer de longues tâches de façon asynchrones, tu dois utiliser des
> Threads, sinon le thread principal gèle l'interface de l'utilisateur
jusqu'à
> ce que la tâche soit terminée.
>
> J'ai écrit 2 articles sur le sujet sur http://dotnet-fr.org; je
> t'invites à y jeter un oeil :
>
> Optimisez votre application à l'aide des "threads"! (Thread partie 1) :
> http://www.dotnet-fr.org/sections.php3?op=viewarticle&artidf
> Exécution de tâches asynchrones avec les "delegates" (Thread partie 2) :
> http://www.dotnet-fr.org/sections.php3?op=viewarticle&artidh
>
> Bonne chance! :o)
> --
> Sylvain Audet - MCP+SB
> Visitez les astuces .NET sur dotNET-fr.org
> http://www.dotnet-fr.org/sections.php3?op=listarticles&secid=6
>
> "Frédéric LAMBOUR" wrote in message
> news:%
> > Mon application windows fait un traitement assez long dans une boucle.
> >
> > Durant toutes la durée de ce traitement le gestionnaire des tâches
indique
> > Pas de réponse pour mon application.
> > Comment rendre la main à windows dans ma boucle pour obtenir un état :
en
> > cours exécution ?
> >
> > J'ai essayé Refresh() mais sans résultat (autre que graphique).
> >
> >
>
>




Avatar
Stéphane L.
par contre, les threads m'interessent :) j'avais essayé, mais sans succés,
je vais donc regarder ces 2 liens. merci :)

Stéphane


"Sylvain Audet" a écrit dans le message de
news:%
Bonjour Frédéric,
Je ne suis pas certain de bien comprendre la question, mais pour
effectuer de longues tâches de façon asynchrones, tu dois utiliser des
Threads, sinon le thread principal gèle l'interface de l'utilisateur


jusqu'à
ce que la tâche soit terminée.

J'ai écrit 2 articles sur le sujet sur http://dotnet-fr.org; je
t'invites à y jeter un oeil :

Optimisez votre application à l'aide des "threads"! (Thread partie 1) :
http://www.dotnet-fr.org/sections.php3?op=viewarticle&artidf
Exécution de tâches asynchrones avec les "delegates" (Thread partie 2) :
http://www.dotnet-fr.org/sections.php3?op=viewarticle&artidh

Bonne chance! :o)
--
Sylvain Audet - MCP+SB
Visitez les astuces .NET sur dotNET-fr.org
http://www.dotnet-fr.org/sections.php3?op=listarticles&secid=6

"Frédéric LAMBOUR" wrote in message
news:%
> Mon application windows fait un traitement assez long dans une boucle.
>
> Durant toutes la durée de ce traitement le gestionnaire des tâches


indique
> Pas de réponse pour mon application.
> Comment rendre la main à windows dans ma boucle pour obtenir un état :


en
> cours exécution ?
>
> J'ai essayé Refresh() mais sans résultat (autre que graphique).
>
>




Avatar
Sylvain Audet
Tout est bien qui finit bien alors! ;-)

--
Sylvain Audet - MCP+SB
Visitez les astuces .NET sur dotNET-fr.org
http://www.dotnet-fr.org/sections.php3?op=listarticles&secid=6

"Stéphane L." wrote in message
news:
par contre, les threads m'interessent :) j'avais essayé, mais sans succés,
je vais donc regarder ces 2 liens. merci :)

Stéphane


"Sylvain Audet" a écrit dans le message de
news:%
> Bonjour Frédéric,
> Je ne suis pas certain de bien comprendre la question, mais pour
> effectuer de longues tâches de façon asynchrones, tu dois utiliser des
> Threads, sinon le thread principal gèle l'interface de l'utilisateur
jusqu'à
> ce que la tâche soit terminée.
>
> J'ai écrit 2 articles sur le sujet sur http://dotnet-fr.org; je
> t'invites à y jeter un oeil :
>
> Optimisez votre application à l'aide des "threads"! (Thread partie 1) :
> http://www.dotnet-fr.org/sections.php3?op=viewarticle&artidf
> Exécution de tâches asynchrones avec les "delegates" (Thread partie 2) :
> http://www.dotnet-fr.org/sections.php3?op=viewarticle&artidh
>
> Bonne chance! :o)
> --
> Sylvain Audet - MCP+SB
> Visitez les astuces .NET sur dotNET-fr.org
> http://www.dotnet-fr.org/sections.php3?op=listarticles&secid=6
>
> "Frédéric LAMBOUR" wrote in message
> news:%
> > Mon application windows fait un traitement assez long dans une boucle.
> >
> > Durant toutes la durée de ce traitement le gestionnaire des tâches
indique
> > Pas de réponse pour mon application.
> > Comment rendre la main à windows dans ma boucle pour obtenir un état :
en
> > cours exécution ?
> >
> > J'ai essayé Refresh() mais sans résultat (autre que graphique).
> >
> >
>
>