Bonjour
J'essaie depuis un bon moment maintenant et sans succés de réaliser un
message d'attente pendant un traitement (en fait, un appel à un Web
Service en mode synchrone). Le but est que le message apparaisse lorsque
le temps d'attente devient trop long... Comme j'ai également une image Gif
animée sur cette form, je suppose qu'il faut que je crée un nouveau Thread
pour que l'animation marche correctement et pour gérer l'ouverture
retardée.
J'ai bien commencé à écrire quelques lignes de code, mais ça ne fonctionne
par comme je veux (en général je n'ai rien du tout qui s'affiche :-) )
Dans un module j'ai les déclarations suivantes :
Private frm_wait As New frm_wait 'la fenêtre d'attente
Private WithEvents TimerWait As New Timer
Private Thread As New Threading.Thread(AddressOf DebutThreadAttente)
Dans ma fenêtre où il y a l'appel au service web j'ai qq chose du style :
DebutAttente()
try
'Appel du service web
catch
'gestion d'erreur
end try
FinAttente()
Et mes procédures sont les suivantes :
Public Sub DebutAttente()
TimerWait.Interval = K_TIMER_WAIT 'la variable définie en ms pour le
temps d'attente avant affichage de la fenêtre
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Avec cela je voulais réaliser uniquement un Show/Hide de la fenêtre
d'attente avant/après chacun des traitements mais ça ne marche pas...
J'avoue que je suis bien perdu avec ce thread. Si quelqu'un pouvait
m'indiquer une piste pour réaliser cela...
Merci d'avance
Steph
Bonjour
J'essaie depuis un bon moment maintenant et sans succés de réaliser un
message d'attente pendant un traitement (en fait, un appel à un Web
Service en mode synchrone). Le but est que le message apparaisse lorsque
le temps d'attente devient trop long... Comme j'ai également une image Gif
animée sur cette form, je suppose qu'il faut que je crée un nouveau Thread
pour que l'animation marche correctement et pour gérer l'ouverture
retardée.
J'ai bien commencé à écrire quelques lignes de code, mais ça ne fonctionne
par comme je veux (en général je n'ai rien du tout qui s'affiche :-) )
Dans un module j'ai les déclarations suivantes :
Private frm_wait As New frm_wait 'la fenêtre d'attente
Private WithEvents TimerWait As New Timer
Private Thread As New Threading.Thread(AddressOf DebutThreadAttente)
Dans ma fenêtre où il y a l'appel au service web j'ai qq chose du style :
DebutAttente()
try
'Appel du service web
catch
'gestion d'erreur
end try
FinAttente()
Et mes procédures sont les suivantes :
Public Sub DebutAttente()
TimerWait.Interval = K_TIMER_WAIT 'la variable définie en ms pour le
temps d'attente avant affichage de la fenêtre
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Avec cela je voulais réaliser uniquement un Show/Hide de la fenêtre
d'attente avant/après chacun des traitements mais ça ne marche pas...
J'avoue que je suis bien perdu avec ce thread. Si quelqu'un pouvait
m'indiquer une piste pour réaliser cela...
Merci d'avance
Steph
Bonjour
J'essaie depuis un bon moment maintenant et sans succés de réaliser un
message d'attente pendant un traitement (en fait, un appel à un Web
Service en mode synchrone). Le but est que le message apparaisse lorsque
le temps d'attente devient trop long... Comme j'ai également une image Gif
animée sur cette form, je suppose qu'il faut que je crée un nouveau Thread
pour que l'animation marche correctement et pour gérer l'ouverture
retardée.
J'ai bien commencé à écrire quelques lignes de code, mais ça ne fonctionne
par comme je veux (en général je n'ai rien du tout qui s'affiche :-) )
Dans un module j'ai les déclarations suivantes :
Private frm_wait As New frm_wait 'la fenêtre d'attente
Private WithEvents TimerWait As New Timer
Private Thread As New Threading.Thread(AddressOf DebutThreadAttente)
Dans ma fenêtre où il y a l'appel au service web j'ai qq chose du style :
DebutAttente()
try
'Appel du service web
catch
'gestion d'erreur
end try
FinAttente()
Et mes procédures sont les suivantes :
Public Sub DebutAttente()
TimerWait.Interval = K_TIMER_WAIT 'la variable définie en ms pour le
temps d'attente avant affichage de la fenêtre
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Avec cela je voulais réaliser uniquement un Show/Hide de la fenêtre
d'attente avant/après chacun des traitements mais ça ne marche pas...
J'avoue que je suis bien perdu avec ce thread. Si quelqu'un pouvait
m'indiquer une piste pour réaliser cela...
Merci d'avance
Steph
d'après le code que tu donne :
Tu execute DebutAttente qui lance un timer...
Tu lances Ton service web qui traite sa tache ....
Quand il a finit sa tache tu execute FinAttente.
Tu as définit une intervalle pour le timer ( c'est un exemple ) 10ms
Donc au bout de 10ms le timer va s'arreter et lancer un autre Thread (
indépendant du service Web )
Ce Thread affiche la fenetre et s'arretes ( je suppose que frm_wait est
globale )
Ma question est :
Le lancement du service web se fait - il via un autre thread ? ou bloque
t- il le thread principal ?
si il se fait via un thread à part, il est normal que la fenetre se
referme.
"Stephane TUET" a écrit dans le message de news:
OgJHmX$Bonjour
J'essaie depuis un bon moment maintenant et sans succés de réaliser un
message d'attente pendant un traitement (en fait, un appel à un Web
Service en mode synchrone). Le but est que le message apparaisse lorsque
le temps d'attente devient trop long... Comme j'ai également une image
Gif animée sur cette form, je suppose qu'il faut que je crée un nouveau
Thread pour que l'animation marche correctement et pour gérer l'ouverture
retardée.
J'ai bien commencé à écrire quelques lignes de code, mais ça ne
fonctionne par comme je veux (en général je n'ai rien du tout qui
s'affiche :-) )
Dans un module j'ai les déclarations suivantes :
Private frm_wait As New frm_wait 'la fenêtre d'attente
Private WithEvents TimerWait As New Timer
Private Thread As New Threading.Thread(AddressOf DebutThreadAttente)
Dans ma fenêtre où il y a l'appel au service web j'ai qq chose du style :
DebutAttente()
try
'Appel du service web
catch
'gestion d'erreur
end try
FinAttente()
Et mes procédures sont les suivantes :
Public Sub DebutAttente()
TimerWait.Interval = K_TIMER_WAIT 'la variable définie en ms pour
le temps d'attente avant affichage de la fenêtre
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Avec cela je voulais réaliser uniquement un Show/Hide de la fenêtre
d'attente avant/après chacun des traitements mais ça ne marche pas...
J'avoue que je suis bien perdu avec ce thread. Si quelqu'un pouvait
m'indiquer une piste pour réaliser cela...
Merci d'avance
Steph
d'après le code que tu donne :
Tu execute DebutAttente qui lance un timer...
Tu lances Ton service web qui traite sa tache ....
Quand il a finit sa tache tu execute FinAttente.
Tu as définit une intervalle pour le timer ( c'est un exemple ) 10ms
Donc au bout de 10ms le timer va s'arreter et lancer un autre Thread (
indépendant du service Web )
Ce Thread affiche la fenetre et s'arretes ( je suppose que frm_wait est
globale )
Ma question est :
Le lancement du service web se fait - il via un autre thread ? ou bloque
t- il le thread principal ?
si il se fait via un thread à part, il est normal que la fenetre se
referme.
"Stephane TUET" <s.tuet@adsoftware.fr> a écrit dans le message de news:
OgJHmX$8EHA.3944@TK2MSFTNGP12.phx.gbl...
Bonjour
J'essaie depuis un bon moment maintenant et sans succés de réaliser un
message d'attente pendant un traitement (en fait, un appel à un Web
Service en mode synchrone). Le but est que le message apparaisse lorsque
le temps d'attente devient trop long... Comme j'ai également une image
Gif animée sur cette form, je suppose qu'il faut que je crée un nouveau
Thread pour que l'animation marche correctement et pour gérer l'ouverture
retardée.
J'ai bien commencé à écrire quelques lignes de code, mais ça ne
fonctionne par comme je veux (en général je n'ai rien du tout qui
s'affiche :-) )
Dans un module j'ai les déclarations suivantes :
Private frm_wait As New frm_wait 'la fenêtre d'attente
Private WithEvents TimerWait As New Timer
Private Thread As New Threading.Thread(AddressOf DebutThreadAttente)
Dans ma fenêtre où il y a l'appel au service web j'ai qq chose du style :
DebutAttente()
try
'Appel du service web
catch
'gestion d'erreur
end try
FinAttente()
Et mes procédures sont les suivantes :
Public Sub DebutAttente()
TimerWait.Interval = K_TIMER_WAIT 'la variable définie en ms pour
le temps d'attente avant affichage de la fenêtre
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Avec cela je voulais réaliser uniquement un Show/Hide de la fenêtre
d'attente avant/après chacun des traitements mais ça ne marche pas...
J'avoue que je suis bien perdu avec ce thread. Si quelqu'un pouvait
m'indiquer une piste pour réaliser cela...
Merci d'avance
Steph
d'après le code que tu donne :
Tu execute DebutAttente qui lance un timer...
Tu lances Ton service web qui traite sa tache ....
Quand il a finit sa tache tu execute FinAttente.
Tu as définit une intervalle pour le timer ( c'est un exemple ) 10ms
Donc au bout de 10ms le timer va s'arreter et lancer un autre Thread (
indépendant du service Web )
Ce Thread affiche la fenetre et s'arretes ( je suppose que frm_wait est
globale )
Ma question est :
Le lancement du service web se fait - il via un autre thread ? ou bloque
t- il le thread principal ?
si il se fait via un thread à part, il est normal que la fenetre se
referme.
"Stephane TUET" a écrit dans le message de news:
OgJHmX$Bonjour
J'essaie depuis un bon moment maintenant et sans succés de réaliser un
message d'attente pendant un traitement (en fait, un appel à un Web
Service en mode synchrone). Le but est que le message apparaisse lorsque
le temps d'attente devient trop long... Comme j'ai également une image
Gif animée sur cette form, je suppose qu'il faut que je crée un nouveau
Thread pour que l'animation marche correctement et pour gérer l'ouverture
retardée.
J'ai bien commencé à écrire quelques lignes de code, mais ça ne
fonctionne par comme je veux (en général je n'ai rien du tout qui
s'affiche :-) )
Dans un module j'ai les déclarations suivantes :
Private frm_wait As New frm_wait 'la fenêtre d'attente
Private WithEvents TimerWait As New Timer
Private Thread As New Threading.Thread(AddressOf DebutThreadAttente)
Dans ma fenêtre où il y a l'appel au service web j'ai qq chose du style :
DebutAttente()
try
'Appel du service web
catch
'gestion d'erreur
end try
FinAttente()
Et mes procédures sont les suivantes :
Public Sub DebutAttente()
TimerWait.Interval = K_TIMER_WAIT 'la variable définie en ms pour
le temps d'attente avant affichage de la fenêtre
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Avec cela je voulais réaliser uniquement un Show/Hide de la fenêtre
d'attente avant/après chacun des traitements mais ça ne marche pas...
J'avoue que je suis bien perdu avec ce thread. Si quelqu'un pouvait
m'indiquer une piste pour réaliser cela...
Merci d'avance
Steph
Merci pour ta réponse et tu as bien compris ce que j'ai essayé de faire
(et j'en suis content, au moins même si mon code ne marche pas, il a été
compris :-) ). frm_wait est bien défini en global puisqu'il peut être
appelé à divers endroit dans mon application (je compte le faire à chaque
appel d'un service web).
L'appel du service web lui est réalisé dans le thread principal qui se
trouve donc bloqué.
J'ai également essayé de déplacé le lancement du timer comme ceci :
Public Sub DebutAttente()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
TimerWait.Interval = K_TIMER_WAIT
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Mais j'ai l'impression de ne pouvoir lancer le thread qu'une seule fois,
au deuxième appel à DebutAttente, j'ai un plantage...
Merci de ton aide.
Steph
"AlexC" <(@Anti-Spam)#(@Anti-Spam)#> a écrit
dans le message de news: uupRlv$d'après le code que tu donne :
Tu execute DebutAttente qui lance un timer...
Tu lances Ton service web qui traite sa tache ....
Quand il a finit sa tache tu execute FinAttente.
Tu as définit une intervalle pour le timer ( c'est un exemple ) 10ms
Donc au bout de 10ms le timer va s'arreter et lancer un autre Thread (
indépendant du service Web )
Ce Thread affiche la fenetre et s'arretes ( je suppose que frm_wait est
globale )
Ma question est :
Le lancement du service web se fait - il via un autre thread ? ou bloque
t- il le thread principal ?
si il se fait via un thread à part, il est normal que la fenetre se
referme.
"Stephane TUET" a écrit dans le message de news:
OgJHmX$Bonjour
J'essaie depuis un bon moment maintenant et sans succés de réaliser
un message d'attente pendant un traitement (en fait, un appel à un Web
Service en mode synchrone). Le but est que le message apparaisse lorsque
le temps d'attente devient trop long... Comme j'ai également une image
Gif animée sur cette form, je suppose qu'il faut que je crée un nouveau
Thread pour que l'animation marche correctement et pour gérer
l'ouverture retardée.
J'ai bien commencé à écrire quelques lignes de code, mais ça ne
fonctionne par comme je veux (en général je n'ai rien du tout qui
s'affiche :-) )
Dans un module j'ai les déclarations suivantes :
Private frm_wait As New frm_wait 'la fenêtre d'attente
Private WithEvents TimerWait As New Timer
Private Thread As New Threading.Thread(AddressOf DebutThreadAttente)
Dans ma fenêtre où il y a l'appel au service web j'ai qq chose du style
:
DebutAttente()
try
'Appel du service web
catch
'gestion d'erreur
end try
FinAttente()
Et mes procédures sont les suivantes :
Public Sub DebutAttente()
TimerWait.Interval = K_TIMER_WAIT 'la variable définie en ms pour
le temps d'attente avant affichage de la fenêtre
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Avec cela je voulais réaliser uniquement un Show/Hide de la fenêtre
d'attente avant/après chacun des traitements mais ça ne marche pas...
J'avoue que je suis bien perdu avec ce thread. Si quelqu'un pouvait
m'indiquer une piste pour réaliser cela...
Merci d'avance
Steph
Merci pour ta réponse et tu as bien compris ce que j'ai essayé de faire
(et j'en suis content, au moins même si mon code ne marche pas, il a été
compris :-) ). frm_wait est bien défini en global puisqu'il peut être
appelé à divers endroit dans mon application (je compte le faire à chaque
appel d'un service web).
L'appel du service web lui est réalisé dans le thread principal qui se
trouve donc bloqué.
J'ai également essayé de déplacé le lancement du timer comme ceci :
Public Sub DebutAttente()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
TimerWait.Interval = K_TIMER_WAIT
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Mais j'ai l'impression de ne pouvoir lancer le thread qu'une seule fois,
au deuxième appel à DebutAttente, j'ai un plantage...
Merci de ton aide.
Steph
"AlexC" <(@Anti-Spam)#alexandre.claverie@latelec.fr(@Anti-Spam)#> a écrit
dans le message de news: uupRlv$8EHA.2900@TK2MSFTNGP09.phx.gbl...
d'après le code que tu donne :
Tu execute DebutAttente qui lance un timer...
Tu lances Ton service web qui traite sa tache ....
Quand il a finit sa tache tu execute FinAttente.
Tu as définit une intervalle pour le timer ( c'est un exemple ) 10ms
Donc au bout de 10ms le timer va s'arreter et lancer un autre Thread (
indépendant du service Web )
Ce Thread affiche la fenetre et s'arretes ( je suppose que frm_wait est
globale )
Ma question est :
Le lancement du service web se fait - il via un autre thread ? ou bloque
t- il le thread principal ?
si il se fait via un thread à part, il est normal que la fenetre se
referme.
"Stephane TUET" <s.tuet@adsoftware.fr> a écrit dans le message de news:
OgJHmX$8EHA.3944@TK2MSFTNGP12.phx.gbl...
Bonjour
J'essaie depuis un bon moment maintenant et sans succés de réaliser
un message d'attente pendant un traitement (en fait, un appel à un Web
Service en mode synchrone). Le but est que le message apparaisse lorsque
le temps d'attente devient trop long... Comme j'ai également une image
Gif animée sur cette form, je suppose qu'il faut que je crée un nouveau
Thread pour que l'animation marche correctement et pour gérer
l'ouverture retardée.
J'ai bien commencé à écrire quelques lignes de code, mais ça ne
fonctionne par comme je veux (en général je n'ai rien du tout qui
s'affiche :-) )
Dans un module j'ai les déclarations suivantes :
Private frm_wait As New frm_wait 'la fenêtre d'attente
Private WithEvents TimerWait As New Timer
Private Thread As New Threading.Thread(AddressOf DebutThreadAttente)
Dans ma fenêtre où il y a l'appel au service web j'ai qq chose du style
:
DebutAttente()
try
'Appel du service web
catch
'gestion d'erreur
end try
FinAttente()
Et mes procédures sont les suivantes :
Public Sub DebutAttente()
TimerWait.Interval = K_TIMER_WAIT 'la variable définie en ms pour
le temps d'attente avant affichage de la fenêtre
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Avec cela je voulais réaliser uniquement un Show/Hide de la fenêtre
d'attente avant/après chacun des traitements mais ça ne marche pas...
J'avoue que je suis bien perdu avec ce thread. Si quelqu'un pouvait
m'indiquer une piste pour réaliser cela...
Merci d'avance
Steph
Merci pour ta réponse et tu as bien compris ce que j'ai essayé de faire
(et j'en suis content, au moins même si mon code ne marche pas, il a été
compris :-) ). frm_wait est bien défini en global puisqu'il peut être
appelé à divers endroit dans mon application (je compte le faire à chaque
appel d'un service web).
L'appel du service web lui est réalisé dans le thread principal qui se
trouve donc bloqué.
J'ai également essayé de déplacé le lancement du timer comme ceci :
Public Sub DebutAttente()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
TimerWait.Interval = K_TIMER_WAIT
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Mais j'ai l'impression de ne pouvoir lancer le thread qu'une seule fois,
au deuxième appel à DebutAttente, j'ai un plantage...
Merci de ton aide.
Steph
"AlexC" <(@Anti-Spam)#(@Anti-Spam)#> a écrit
dans le message de news: uupRlv$d'après le code que tu donne :
Tu execute DebutAttente qui lance un timer...
Tu lances Ton service web qui traite sa tache ....
Quand il a finit sa tache tu execute FinAttente.
Tu as définit une intervalle pour le timer ( c'est un exemple ) 10ms
Donc au bout de 10ms le timer va s'arreter et lancer un autre Thread (
indépendant du service Web )
Ce Thread affiche la fenetre et s'arretes ( je suppose que frm_wait est
globale )
Ma question est :
Le lancement du service web se fait - il via un autre thread ? ou bloque
t- il le thread principal ?
si il se fait via un thread à part, il est normal que la fenetre se
referme.
"Stephane TUET" a écrit dans le message de news:
OgJHmX$Bonjour
J'essaie depuis un bon moment maintenant et sans succés de réaliser
un message d'attente pendant un traitement (en fait, un appel à un Web
Service en mode synchrone). Le but est que le message apparaisse lorsque
le temps d'attente devient trop long... Comme j'ai également une image
Gif animée sur cette form, je suppose qu'il faut que je crée un nouveau
Thread pour que l'animation marche correctement et pour gérer
l'ouverture retardée.
J'ai bien commencé à écrire quelques lignes de code, mais ça ne
fonctionne par comme je veux (en général je n'ai rien du tout qui
s'affiche :-) )
Dans un module j'ai les déclarations suivantes :
Private frm_wait As New frm_wait 'la fenêtre d'attente
Private WithEvents TimerWait As New Timer
Private Thread As New Threading.Thread(AddressOf DebutThreadAttente)
Dans ma fenêtre où il y a l'appel au service web j'ai qq chose du style
:
DebutAttente()
try
'Appel du service web
catch
'gestion d'erreur
end try
FinAttente()
Et mes procédures sont les suivantes :
Public Sub DebutAttente()
TimerWait.Interval = K_TIMER_WAIT 'la variable définie en ms pour
le temps d'attente avant affichage de la fenêtre
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Avec cela je voulais réaliser uniquement un Show/Hide de la fenêtre
d'attente avant/après chacun des traitements mais ça ne marche pas...
J'avoue que je suis bien perdu avec ce thread. Si quelqu'un pouvait
m'indiquer une piste pour réaliser cela...
Merci d'avance
Steph
Merci pour ta réponse et tu as bien compris ce que j'ai essayé de faire
(et j'en suis content, au moins même si mon code ne marche pas, il a été
compris :-) ). frm_wait est bien défini en global puisqu'il peut être
appelé à divers endroit dans mon application (je compte le faire à chaque
appel d'un service web).
L'appel du service web lui est réalisé dans le thread principal qui se
trouve donc bloqué.
J'ai également essayé de déplacé le lancement du timer comme ceci :
Public Sub DebutAttente()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
TimerWait.Interval = K_TIMER_WAIT
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Mais j'ai l'impression de ne pouvoir lancer le thread qu'une seule fois,
au deuxième appel à DebutAttente, j'ai un plantage...
Merci de ton aide.
Steph
"AlexC" <(@Anti-Spam)#(@Anti-Spam)#> a écrit
dans le message de news: uupRlv$d'après le code que tu donne :
Tu execute DebutAttente qui lance un timer...
Tu lances Ton service web qui traite sa tache ....
Quand il a finit sa tache tu execute FinAttente.
Tu as définit une intervalle pour le timer ( c'est un exemple ) 10ms
Donc au bout de 10ms le timer va s'arreter et lancer un autre Thread (
indépendant du service Web )
Ce Thread affiche la fenetre et s'arretes ( je suppose que frm_wait est
globale )
Ma question est :
Le lancement du service web se fait - il via un autre thread ? ou bloque
t- il le thread principal ?
si il se fait via un thread à part, il est normal que la fenetre se
referme.
"Stephane TUET" a écrit dans le message de news:
OgJHmX$Bonjour
J'essaie depuis un bon moment maintenant et sans succés de réaliser
un message d'attente pendant un traitement (en fait, un appel à un Web
Service en mode synchrone). Le but est que le message apparaisse lorsque
le temps d'attente devient trop long... Comme j'ai également une image
Gif animée sur cette form, je suppose qu'il faut que je crée un nouveau
Thread pour que l'animation marche correctement et pour gérer
l'ouverture retardée.
J'ai bien commencé à écrire quelques lignes de code, mais ça ne
fonctionne par comme je veux (en général je n'ai rien du tout qui
s'affiche :-) )
Dans un module j'ai les déclarations suivantes :
Private frm_wait As New frm_wait 'la fenêtre d'attente
Private WithEvents TimerWait As New Timer
Private Thread As New Threading.Thread(AddressOf DebutThreadAttente)
Dans ma fenêtre où il y a l'appel au service web j'ai qq chose du style
:
DebutAttente()
try
'Appel du service web
catch
'gestion d'erreur
end try
FinAttente()
Et mes procédures sont les suivantes :
Public Sub DebutAttente()
TimerWait.Interval = K_TIMER_WAIT 'la variable définie en ms pour
le temps d'attente avant affichage de la fenêtre
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Avec cela je voulais réaliser uniquement un Show/Hide de la fenêtre
d'attente avant/après chacun des traitements mais ça ne marche pas...
J'avoue que je suis bien perdu avec ce thread. Si quelqu'un pouvait
m'indiquer une piste pour réaliser cela...
Merci d'avance
Steph
Merci pour ta réponse et tu as bien compris ce que j'ai essayé de faire
(et j'en suis content, au moins même si mon code ne marche pas, il a été
compris :-) ). frm_wait est bien défini en global puisqu'il peut être
appelé à divers endroit dans mon application (je compte le faire à chaque
appel d'un service web).
L'appel du service web lui est réalisé dans le thread principal qui se
trouve donc bloqué.
J'ai également essayé de déplacé le lancement du timer comme ceci :
Public Sub DebutAttente()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
TimerWait.Interval = K_TIMER_WAIT
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Mais j'ai l'impression de ne pouvoir lancer le thread qu'une seule fois,
au deuxième appel à DebutAttente, j'ai un plantage...
Merci de ton aide.
Steph
"AlexC" <(@Anti-Spam)#alexandre.claverie@latelec.fr(@Anti-Spam)#> a écrit
dans le message de news: uupRlv$8EHA.2900@TK2MSFTNGP09.phx.gbl...
d'après le code que tu donne :
Tu execute DebutAttente qui lance un timer...
Tu lances Ton service web qui traite sa tache ....
Quand il a finit sa tache tu execute FinAttente.
Tu as définit une intervalle pour le timer ( c'est un exemple ) 10ms
Donc au bout de 10ms le timer va s'arreter et lancer un autre Thread (
indépendant du service Web )
Ce Thread affiche la fenetre et s'arretes ( je suppose que frm_wait est
globale )
Ma question est :
Le lancement du service web se fait - il via un autre thread ? ou bloque
t- il le thread principal ?
si il se fait via un thread à part, il est normal que la fenetre se
referme.
"Stephane TUET" <s.tuet@adsoftware.fr> a écrit dans le message de news:
OgJHmX$8EHA.3944@TK2MSFTNGP12.phx.gbl...
Bonjour
J'essaie depuis un bon moment maintenant et sans succés de réaliser
un message d'attente pendant un traitement (en fait, un appel à un Web
Service en mode synchrone). Le but est que le message apparaisse lorsque
le temps d'attente devient trop long... Comme j'ai également une image
Gif animée sur cette form, je suppose qu'il faut que je crée un nouveau
Thread pour que l'animation marche correctement et pour gérer
l'ouverture retardée.
J'ai bien commencé à écrire quelques lignes de code, mais ça ne
fonctionne par comme je veux (en général je n'ai rien du tout qui
s'affiche :-) )
Dans un module j'ai les déclarations suivantes :
Private frm_wait As New frm_wait 'la fenêtre d'attente
Private WithEvents TimerWait As New Timer
Private Thread As New Threading.Thread(AddressOf DebutThreadAttente)
Dans ma fenêtre où il y a l'appel au service web j'ai qq chose du style
:
DebutAttente()
try
'Appel du service web
catch
'gestion d'erreur
end try
FinAttente()
Et mes procédures sont les suivantes :
Public Sub DebutAttente()
TimerWait.Interval = K_TIMER_WAIT 'la variable définie en ms pour
le temps d'attente avant affichage de la fenêtre
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Avec cela je voulais réaliser uniquement un Show/Hide de la fenêtre
d'attente avant/après chacun des traitements mais ça ne marche pas...
J'avoue que je suis bien perdu avec ce thread. Si quelqu'un pouvait
m'indiquer une piste pour réaliser cela...
Merci d'avance
Steph
Merci pour ta réponse et tu as bien compris ce que j'ai essayé de faire
(et j'en suis content, au moins même si mon code ne marche pas, il a été
compris :-) ). frm_wait est bien défini en global puisqu'il peut être
appelé à divers endroit dans mon application (je compte le faire à chaque
appel d'un service web).
L'appel du service web lui est réalisé dans le thread principal qui se
trouve donc bloqué.
J'ai également essayé de déplacé le lancement du timer comme ceci :
Public Sub DebutAttente()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
TimerWait.Interval = K_TIMER_WAIT
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Mais j'ai l'impression de ne pouvoir lancer le thread qu'une seule fois,
au deuxième appel à DebutAttente, j'ai un plantage...
Merci de ton aide.
Steph
"AlexC" <(@Anti-Spam)#(@Anti-Spam)#> a écrit
dans le message de news: uupRlv$d'après le code que tu donne :
Tu execute DebutAttente qui lance un timer...
Tu lances Ton service web qui traite sa tache ....
Quand il a finit sa tache tu execute FinAttente.
Tu as définit une intervalle pour le timer ( c'est un exemple ) 10ms
Donc au bout de 10ms le timer va s'arreter et lancer un autre Thread (
indépendant du service Web )
Ce Thread affiche la fenetre et s'arretes ( je suppose que frm_wait est
globale )
Ma question est :
Le lancement du service web se fait - il via un autre thread ? ou bloque
t- il le thread principal ?
si il se fait via un thread à part, il est normal que la fenetre se
referme.
"Stephane TUET" a écrit dans le message de news:
OgJHmX$Bonjour
J'essaie depuis un bon moment maintenant et sans succés de réaliser
un message d'attente pendant un traitement (en fait, un appel à un Web
Service en mode synchrone). Le but est que le message apparaisse lorsque
le temps d'attente devient trop long... Comme j'ai également une image
Gif animée sur cette form, je suppose qu'il faut que je crée un nouveau
Thread pour que l'animation marche correctement et pour gérer
l'ouverture retardée.
J'ai bien commencé à écrire quelques lignes de code, mais ça ne
fonctionne par comme je veux (en général je n'ai rien du tout qui
s'affiche :-) )
Dans un module j'ai les déclarations suivantes :
Private frm_wait As New frm_wait 'la fenêtre d'attente
Private WithEvents TimerWait As New Timer
Private Thread As New Threading.Thread(AddressOf DebutThreadAttente)
Dans ma fenêtre où il y a l'appel au service web j'ai qq chose du style
:
DebutAttente()
try
'Appel du service web
catch
'gestion d'erreur
end try
FinAttente()
Et mes procédures sont les suivantes :
Public Sub DebutAttente()
TimerWait.Interval = K_TIMER_WAIT 'la variable définie en ms pour
le temps d'attente avant affichage de la fenêtre
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Avec cela je voulais réaliser uniquement un Show/Hide de la fenêtre
d'attente avant/après chacun des traitements mais ça ne marche pas...
J'avoue que je suis bien perdu avec ce thread. Si quelqu'un pouvait
m'indiquer une piste pour réaliser cela...
Merci d'avance
Steph
J'ai trouvé, mais je ne comprends pas pourquoi ...
Il suffit d'enlever le Thread "DebutThreadAttente"
et de remplacer dans le gestionnaire d'évènemement du timer le
Thread.start par
frm_wait.show et ca marche ...
"Stephane TUET" a écrit dans le message de news:
Oj%23M22$Merci pour ta réponse et tu as bien compris ce que j'ai essayé de faire
(et j'en suis content, au moins même si mon code ne marche pas, il a été
compris :-) ). frm_wait est bien défini en global puisqu'il peut être
appelé à divers endroit dans mon application (je compte le faire à chaque
appel d'un service web).
L'appel du service web lui est réalisé dans le thread principal qui se
trouve donc bloqué.
J'ai également essayé de déplacé le lancement du timer comme ceci :
Public Sub DebutAttente()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
TimerWait.Interval = K_TIMER_WAIT
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Mais j'ai l'impression de ne pouvoir lancer le thread qu'une seule fois,
au deuxième appel à DebutAttente, j'ai un plantage...
Merci de ton aide.
Steph
"AlexC" <(@Anti-Spam)#(@Anti-Spam)#> a écrit
dans le message de news: uupRlv$d'après le code que tu donne :
Tu execute DebutAttente qui lance un timer...
Tu lances Ton service web qui traite sa tache ....
Quand il a finit sa tache tu execute FinAttente.
Tu as définit une intervalle pour le timer ( c'est un exemple ) 10ms
Donc au bout de 10ms le timer va s'arreter et lancer un autre Thread (
indépendant du service Web )
Ce Thread affiche la fenetre et s'arretes ( je suppose que frm_wait est
globale )
Ma question est :
Le lancement du service web se fait - il via un autre thread ? ou bloque
t- il le thread principal ?
si il se fait via un thread à part, il est normal que la fenetre se
referme.
"Stephane TUET" a écrit dans le message de news:
OgJHmX$Bonjour
J'essaie depuis un bon moment maintenant et sans succés de réaliser
un message d'attente pendant un traitement (en fait, un appel à un Web
Service en mode synchrone). Le but est que le message apparaisse
lorsque le temps d'attente devient trop long... Comme j'ai également
une image Gif animée sur cette form, je suppose qu'il faut que je crée
un nouveau Thread pour que l'animation marche correctement et pour
gérer l'ouverture retardée.
J'ai bien commencé à écrire quelques lignes de code, mais ça ne
fonctionne par comme je veux (en général je n'ai rien du tout qui
s'affiche :-) )
Dans un module j'ai les déclarations suivantes :
Private frm_wait As New frm_wait 'la fenêtre d'attente
Private WithEvents TimerWait As New Timer
Private Thread As New Threading.Thread(AddressOf DebutThreadAttente)
Dans ma fenêtre où il y a l'appel au service web j'ai qq chose du style
:
DebutAttente()
try
'Appel du service web
catch
'gestion d'erreur
end try
FinAttente()
Et mes procédures sont les suivantes :
Public Sub DebutAttente()
TimerWait.Interval = K_TIMER_WAIT 'la variable définie en ms pour
le temps d'attente avant affichage de la fenêtre
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Avec cela je voulais réaliser uniquement un Show/Hide de la fenêtre
d'attente avant/après chacun des traitements mais ça ne marche pas...
J'avoue que je suis bien perdu avec ce thread. Si quelqu'un pouvait
m'indiquer une piste pour réaliser cela...
Merci d'avance
Steph
J'ai trouvé, mais je ne comprends pas pourquoi ...
Il suffit d'enlever le Thread "DebutThreadAttente"
et de remplacer dans le gestionnaire d'évènemement du timer le
Thread.start par
frm_wait.show et ca marche ...
"Stephane TUET" <s.tuet@adsoftware.fr> a écrit dans le message de news:
Oj%23M22$8EHA.1264@TK2MSFTNGP12.phx.gbl...
Merci pour ta réponse et tu as bien compris ce que j'ai essayé de faire
(et j'en suis content, au moins même si mon code ne marche pas, il a été
compris :-) ). frm_wait est bien défini en global puisqu'il peut être
appelé à divers endroit dans mon application (je compte le faire à chaque
appel d'un service web).
L'appel du service web lui est réalisé dans le thread principal qui se
trouve donc bloqué.
J'ai également essayé de déplacé le lancement du timer comme ceci :
Public Sub DebutAttente()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
TimerWait.Interval = K_TIMER_WAIT
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Mais j'ai l'impression de ne pouvoir lancer le thread qu'une seule fois,
au deuxième appel à DebutAttente, j'ai un plantage...
Merci de ton aide.
Steph
"AlexC" <(@Anti-Spam)#alexandre.claverie@latelec.fr(@Anti-Spam)#> a écrit
dans le message de news: uupRlv$8EHA.2900@TK2MSFTNGP09.phx.gbl...
d'après le code que tu donne :
Tu execute DebutAttente qui lance un timer...
Tu lances Ton service web qui traite sa tache ....
Quand il a finit sa tache tu execute FinAttente.
Tu as définit une intervalle pour le timer ( c'est un exemple ) 10ms
Donc au bout de 10ms le timer va s'arreter et lancer un autre Thread (
indépendant du service Web )
Ce Thread affiche la fenetre et s'arretes ( je suppose que frm_wait est
globale )
Ma question est :
Le lancement du service web se fait - il via un autre thread ? ou bloque
t- il le thread principal ?
si il se fait via un thread à part, il est normal que la fenetre se
referme.
"Stephane TUET" <s.tuet@adsoftware.fr> a écrit dans le message de news:
OgJHmX$8EHA.3944@TK2MSFTNGP12.phx.gbl...
Bonjour
J'essaie depuis un bon moment maintenant et sans succés de réaliser
un message d'attente pendant un traitement (en fait, un appel à un Web
Service en mode synchrone). Le but est que le message apparaisse
lorsque le temps d'attente devient trop long... Comme j'ai également
une image Gif animée sur cette form, je suppose qu'il faut que je crée
un nouveau Thread pour que l'animation marche correctement et pour
gérer l'ouverture retardée.
J'ai bien commencé à écrire quelques lignes de code, mais ça ne
fonctionne par comme je veux (en général je n'ai rien du tout qui
s'affiche :-) )
Dans un module j'ai les déclarations suivantes :
Private frm_wait As New frm_wait 'la fenêtre d'attente
Private WithEvents TimerWait As New Timer
Private Thread As New Threading.Thread(AddressOf DebutThreadAttente)
Dans ma fenêtre où il y a l'appel au service web j'ai qq chose du style
:
DebutAttente()
try
'Appel du service web
catch
'gestion d'erreur
end try
FinAttente()
Et mes procédures sont les suivantes :
Public Sub DebutAttente()
TimerWait.Interval = K_TIMER_WAIT 'la variable définie en ms pour
le temps d'attente avant affichage de la fenêtre
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Avec cela je voulais réaliser uniquement un Show/Hide de la fenêtre
d'attente avant/après chacun des traitements mais ça ne marche pas...
J'avoue que je suis bien perdu avec ce thread. Si quelqu'un pouvait
m'indiquer une piste pour réaliser cela...
Merci d'avance
Steph
J'ai trouvé, mais je ne comprends pas pourquoi ...
Il suffit d'enlever le Thread "DebutThreadAttente"
et de remplacer dans le gestionnaire d'évènemement du timer le
Thread.start par
frm_wait.show et ca marche ...
"Stephane TUET" a écrit dans le message de news:
Oj%23M22$Merci pour ta réponse et tu as bien compris ce que j'ai essayé de faire
(et j'en suis content, au moins même si mon code ne marche pas, il a été
compris :-) ). frm_wait est bien défini en global puisqu'il peut être
appelé à divers endroit dans mon application (je compte le faire à chaque
appel d'un service web).
L'appel du service web lui est réalisé dans le thread principal qui se
trouve donc bloqué.
J'ai également essayé de déplacé le lancement du timer comme ceci :
Public Sub DebutAttente()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
TimerWait.Interval = K_TIMER_WAIT
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Mais j'ai l'impression de ne pouvoir lancer le thread qu'une seule fois,
au deuxième appel à DebutAttente, j'ai un plantage...
Merci de ton aide.
Steph
"AlexC" <(@Anti-Spam)#(@Anti-Spam)#> a écrit
dans le message de news: uupRlv$d'après le code que tu donne :
Tu execute DebutAttente qui lance un timer...
Tu lances Ton service web qui traite sa tache ....
Quand il a finit sa tache tu execute FinAttente.
Tu as définit une intervalle pour le timer ( c'est un exemple ) 10ms
Donc au bout de 10ms le timer va s'arreter et lancer un autre Thread (
indépendant du service Web )
Ce Thread affiche la fenetre et s'arretes ( je suppose que frm_wait est
globale )
Ma question est :
Le lancement du service web se fait - il via un autre thread ? ou bloque
t- il le thread principal ?
si il se fait via un thread à part, il est normal que la fenetre se
referme.
"Stephane TUET" a écrit dans le message de news:
OgJHmX$Bonjour
J'essaie depuis un bon moment maintenant et sans succés de réaliser
un message d'attente pendant un traitement (en fait, un appel à un Web
Service en mode synchrone). Le but est que le message apparaisse
lorsque le temps d'attente devient trop long... Comme j'ai également
une image Gif animée sur cette form, je suppose qu'il faut que je crée
un nouveau Thread pour que l'animation marche correctement et pour
gérer l'ouverture retardée.
J'ai bien commencé à écrire quelques lignes de code, mais ça ne
fonctionne par comme je veux (en général je n'ai rien du tout qui
s'affiche :-) )
Dans un module j'ai les déclarations suivantes :
Private frm_wait As New frm_wait 'la fenêtre d'attente
Private WithEvents TimerWait As New Timer
Private Thread As New Threading.Thread(AddressOf DebutThreadAttente)
Dans ma fenêtre où il y a l'appel au service web j'ai qq chose du style
:
DebutAttente()
try
'Appel du service web
catch
'gestion d'erreur
end try
FinAttente()
Et mes procédures sont les suivantes :
Public Sub DebutAttente()
TimerWait.Interval = K_TIMER_WAIT 'la variable définie en ms pour
le temps d'attente avant affichage de la fenêtre
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Avec cela je voulais réaliser uniquement un Show/Hide de la fenêtre
d'attente avant/après chacun des traitements mais ça ne marche pas...
J'avoue que je suis bien perdu avec ce thread. Si quelqu'un pouvait
m'indiquer une piste pour réaliser cela...
Merci d'avance
Steph
J'ai trouvé, mais je ne comprends pas pourquoi ...
Il suffit d'enlever le Thread "DebutThreadAttente"
et de remplacer dans le gestionnaire d'évènemement du timer le
Thread.start par
frm_wait.show et ca marche ...
"Stephane TUET" a écrit dans le message de news:
Oj%23M22$Merci pour ta réponse et tu as bien compris ce que j'ai essayé de faire
(et j'en suis content, au moins même si mon code ne marche pas, il a été
compris :-) ). frm_wait est bien défini en global puisqu'il peut être
appelé à divers endroit dans mon application (je compte le faire à chaque
appel d'un service web).
L'appel du service web lui est réalisé dans le thread principal qui se
trouve donc bloqué.
J'ai également essayé de déplacé le lancement du timer comme ceci :
Public Sub DebutAttente()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
TimerWait.Interval = K_TIMER_WAIT
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Mais j'ai l'impression de ne pouvoir lancer le thread qu'une seule fois,
au deuxième appel à DebutAttente, j'ai un plantage...
Merci de ton aide.
Steph
"AlexC" <(@Anti-Spam)#(@Anti-Spam)#> a écrit
dans le message de news: uupRlv$d'après le code que tu donne :
Tu execute DebutAttente qui lance un timer...
Tu lances Ton service web qui traite sa tache ....
Quand il a finit sa tache tu execute FinAttente.
Tu as définit une intervalle pour le timer ( c'est un exemple ) 10ms
Donc au bout de 10ms le timer va s'arreter et lancer un autre Thread (
indépendant du service Web )
Ce Thread affiche la fenetre et s'arretes ( je suppose que frm_wait est
globale )
Ma question est :
Le lancement du service web se fait - il via un autre thread ? ou bloque
t- il le thread principal ?
si il se fait via un thread à part, il est normal que la fenetre se
referme.
"Stephane TUET" a écrit dans le message de news:
OgJHmX$Bonjour
J'essaie depuis un bon moment maintenant et sans succés de réaliser
un message d'attente pendant un traitement (en fait, un appel à un Web
Service en mode synchrone). Le but est que le message apparaisse
lorsque le temps d'attente devient trop long... Comme j'ai également
une image Gif animée sur cette form, je suppose qu'il faut que je crée
un nouveau Thread pour que l'animation marche correctement et pour
gérer l'ouverture retardée.
J'ai bien commencé à écrire quelques lignes de code, mais ça ne
fonctionne par comme je veux (en général je n'ai rien du tout qui
s'affiche :-) )
Dans un module j'ai les déclarations suivantes :
Private frm_wait As New frm_wait 'la fenêtre d'attente
Private WithEvents TimerWait As New Timer
Private Thread As New Threading.Thread(AddressOf DebutThreadAttente)
Dans ma fenêtre où il y a l'appel au service web j'ai qq chose du style
:
DebutAttente()
try
'Appel du service web
catch
'gestion d'erreur
end try
FinAttente()
Et mes procédures sont les suivantes :
Public Sub DebutAttente()
TimerWait.Interval = K_TIMER_WAIT 'la variable définie en ms pour
le temps d'attente avant affichage de la fenêtre
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Avec cela je voulais réaliser uniquement un Show/Hide de la fenêtre
d'attente avant/après chacun des traitements mais ça ne marche pas...
J'avoue que je suis bien perdu avec ce thread. Si quelqu'un pouvait
m'indiquer une piste pour réaliser cela...
Merci d'avance
Steph
J'ai trouvé, mais je ne comprends pas pourquoi ...
Il suffit d'enlever le Thread "DebutThreadAttente"
et de remplacer dans le gestionnaire d'évènemement du timer le
Thread.start par
frm_wait.show et ca marche ...
"Stephane TUET" <s.tuet@adsoftware.fr> a écrit dans le message de news:
Oj%23M22$8EHA.1264@TK2MSFTNGP12.phx.gbl...
Merci pour ta réponse et tu as bien compris ce que j'ai essayé de faire
(et j'en suis content, au moins même si mon code ne marche pas, il a été
compris :-) ). frm_wait est bien défini en global puisqu'il peut être
appelé à divers endroit dans mon application (je compte le faire à chaque
appel d'un service web).
L'appel du service web lui est réalisé dans le thread principal qui se
trouve donc bloqué.
J'ai également essayé de déplacé le lancement du timer comme ceci :
Public Sub DebutAttente()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
TimerWait.Interval = K_TIMER_WAIT
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Mais j'ai l'impression de ne pouvoir lancer le thread qu'une seule fois,
au deuxième appel à DebutAttente, j'ai un plantage...
Merci de ton aide.
Steph
"AlexC" <(@Anti-Spam)#alexandre.claverie@latelec.fr(@Anti-Spam)#> a écrit
dans le message de news: uupRlv$8EHA.2900@TK2MSFTNGP09.phx.gbl...
d'après le code que tu donne :
Tu execute DebutAttente qui lance un timer...
Tu lances Ton service web qui traite sa tache ....
Quand il a finit sa tache tu execute FinAttente.
Tu as définit une intervalle pour le timer ( c'est un exemple ) 10ms
Donc au bout de 10ms le timer va s'arreter et lancer un autre Thread (
indépendant du service Web )
Ce Thread affiche la fenetre et s'arretes ( je suppose que frm_wait est
globale )
Ma question est :
Le lancement du service web se fait - il via un autre thread ? ou bloque
t- il le thread principal ?
si il se fait via un thread à part, il est normal que la fenetre se
referme.
"Stephane TUET" <s.tuet@adsoftware.fr> a écrit dans le message de news:
OgJHmX$8EHA.3944@TK2MSFTNGP12.phx.gbl...
Bonjour
J'essaie depuis un bon moment maintenant et sans succés de réaliser
un message d'attente pendant un traitement (en fait, un appel à un Web
Service en mode synchrone). Le but est que le message apparaisse
lorsque le temps d'attente devient trop long... Comme j'ai également
une image Gif animée sur cette form, je suppose qu'il faut que je crée
un nouveau Thread pour que l'animation marche correctement et pour
gérer l'ouverture retardée.
J'ai bien commencé à écrire quelques lignes de code, mais ça ne
fonctionne par comme je veux (en général je n'ai rien du tout qui
s'affiche :-) )
Dans un module j'ai les déclarations suivantes :
Private frm_wait As New frm_wait 'la fenêtre d'attente
Private WithEvents TimerWait As New Timer
Private Thread As New Threading.Thread(AddressOf DebutThreadAttente)
Dans ma fenêtre où il y a l'appel au service web j'ai qq chose du style
:
DebutAttente()
try
'Appel du service web
catch
'gestion d'erreur
end try
FinAttente()
Et mes procédures sont les suivantes :
Public Sub DebutAttente()
TimerWait.Interval = K_TIMER_WAIT 'la variable définie en ms pour
le temps d'attente avant affichage de la fenêtre
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Avec cela je voulais réaliser uniquement un Show/Hide de la fenêtre
d'attente avant/après chacun des traitements mais ça ne marche pas...
J'avoue que je suis bien perdu avec ce thread. Si quelqu'un pouvait
m'indiquer une piste pour réaliser cela...
Merci d'avance
Steph
J'ai trouvé, mais je ne comprends pas pourquoi ...
Il suffit d'enlever le Thread "DebutThreadAttente"
et de remplacer dans le gestionnaire d'évènemement du timer le
Thread.start par
frm_wait.show et ca marche ...
"Stephane TUET" a écrit dans le message de news:
Oj%23M22$Merci pour ta réponse et tu as bien compris ce que j'ai essayé de faire
(et j'en suis content, au moins même si mon code ne marche pas, il a été
compris :-) ). frm_wait est bien défini en global puisqu'il peut être
appelé à divers endroit dans mon application (je compte le faire à chaque
appel d'un service web).
L'appel du service web lui est réalisé dans le thread principal qui se
trouve donc bloqué.
J'ai également essayé de déplacé le lancement du timer comme ceci :
Public Sub DebutAttente()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
TimerWait.Interval = K_TIMER_WAIT
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Mais j'ai l'impression de ne pouvoir lancer le thread qu'une seule fois,
au deuxième appel à DebutAttente, j'ai un plantage...
Merci de ton aide.
Steph
"AlexC" <(@Anti-Spam)#(@Anti-Spam)#> a écrit
dans le message de news: uupRlv$d'après le code que tu donne :
Tu execute DebutAttente qui lance un timer...
Tu lances Ton service web qui traite sa tache ....
Quand il a finit sa tache tu execute FinAttente.
Tu as définit une intervalle pour le timer ( c'est un exemple ) 10ms
Donc au bout de 10ms le timer va s'arreter et lancer un autre Thread (
indépendant du service Web )
Ce Thread affiche la fenetre et s'arretes ( je suppose que frm_wait est
globale )
Ma question est :
Le lancement du service web se fait - il via un autre thread ? ou bloque
t- il le thread principal ?
si il se fait via un thread à part, il est normal que la fenetre se
referme.
"Stephane TUET" a écrit dans le message de news:
OgJHmX$Bonjour
J'essaie depuis un bon moment maintenant et sans succés de réaliser
un message d'attente pendant un traitement (en fait, un appel à un Web
Service en mode synchrone). Le but est que le message apparaisse
lorsque le temps d'attente devient trop long... Comme j'ai également
une image Gif animée sur cette form, je suppose qu'il faut que je crée
un nouveau Thread pour que l'animation marche correctement et pour
gérer l'ouverture retardée.
J'ai bien commencé à écrire quelques lignes de code, mais ça ne
fonctionne par comme je veux (en général je n'ai rien du tout qui
s'affiche :-) )
Dans un module j'ai les déclarations suivantes :
Private frm_wait As New frm_wait 'la fenêtre d'attente
Private WithEvents TimerWait As New Timer
Private Thread As New Threading.Thread(AddressOf DebutThreadAttente)
Dans ma fenêtre où il y a l'appel au service web j'ai qq chose du style
:
DebutAttente()
try
'Appel du service web
catch
'gestion d'erreur
end try
FinAttente()
Et mes procédures sont les suivantes :
Public Sub DebutAttente()
TimerWait.Interval = K_TIMER_WAIT 'la variable définie en ms pour
le temps d'attente avant affichage de la fenêtre
TimerWait.Start()
End Sub
Private Sub TimerWait_Tick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TimerWait.Tick
TimerWait.Stop()
Thread.Start()
End Sub
Private Sub DebutThreadAttente()
frm_wait.Show()
End Sub
Public Sub FinAttente()
TimerWait.Stop()
frm_wait.Hide()
End Sub
Avec cela je voulais réaliser uniquement un Show/Hide de la fenêtre
d'attente avant/après chacun des traitements mais ça ne marche pas...
J'avoue que je suis bien perdu avec ce thread. Si quelqu'un pouvait
m'indiquer une piste pour réaliser cela...
Merci d'avance
Steph
J'ai trouvé, mais je ne comprends pas pourquoi ...
Il suffit d'enlever le Thread "DebutThreadAttente"
et de remplacer dans le gestionnaire d'évènemement du timer le Thread.start
par
frm_wait.show et ca marche ...
J'ai trouvé, mais je ne comprends pas pourquoi ...
Il suffit d'enlever le Thread "DebutThreadAttente"
et de remplacer dans le gestionnaire d'évènemement du timer le Thread.start
par
frm_wait.show et ca marche ...
J'ai trouvé, mais je ne comprends pas pourquoi ...
Il suffit d'enlever le Thread "DebutThreadAttente"
et de remplacer dans le gestionnaire d'évènemement du timer le Thread.start
par
frm_wait.show et ca marche ...
Salut,
On Thu, 6 Jan 2005 16:09:01 +0100, AlexC wrote:J'ai trouvé, mais je ne comprends pas pourquoi ...
Il suffit d'enlever le Thread "DebutThreadAttente"
et de remplacer dans le gestionnaire d'évènemement du timer le
Thread.start
par
frm_wait.show et ca marche ...
Dans ta methode précédente, tu lancait un thread qui se contentait
d'afficher ta fenetre d'attente de maniere non modale (Show ne bloque
pas).
Donc ton thread affichait ta fenetre puis terminait (vu qu'il n'avait plus
rien a faire) entrainant du coup la destruction de ta fenetre. La solution
aurait été d'appeler ShowDialog (bloquante tant que la fenetre n'a pas été
fermée) au lieu de Show. Mais de toute facon, cette solution d'utilier un
autre thread pour afficher ta fenetre était tres crade et t'aurai apporté
tout un tas de bugs bizarres.
Dans ta nouvelle methode, j'imagine que utilise le timer de l'espace de
nom
Windows.Form. Lorsque que ce timer "tick", ta fonction TimerWait_Tick est
executée dans le thread principal (d'ou le timer a été lancé) et non pas
dans un nouveau thread (c'est la particularité du timer Windows.From
comparé aux autres timers disponibles en .NET). Ce thread principal a 2
particularités:
- il ne termine que lorsque tu fermes ton appli
- il possede un boucle de message (c'est cette boucle qui permet aux
fenetres de rester affichées et de recevoir les evenements - ou messages -
clavier, souris...)
Donc ta fonction TimerWait_Tick affiche ta fenetre d'attente dans le
thread
principal puis se termine. Seulement le thread dans lequel est affichée ta
fenetre est toujours la lui, ta fenetre n'est donc pas détruite et reste
affichée.
Cela dit, cela m'étonne quand meme que ta fenetre soit affichée. Car
lorsque TimerWait_Tick s'exécute, ton thread principal devrait en théorie
etre bloqué par l'appel synchrone au service Web et donc incapable de
faire
quoique ce soit, y compris d'afficher ta fenetre (qui ne serait du coup
affichée qu'a la fin de l'appel au service web). Donc je pense que lors de
tes tests, le timer a tické avant que l'appel au web service n'ai
réellement commencé ou alors lorsqu'il était déja terminé. Ce qui n'est
pas
ce que tu cherche a faire je pense.
Dans tout les cas, ton approche ne me semble pas etre la bonne. La regle
d'or pour les applis Windows (c'est dans la doc): tout ce qui a trait a
l'UI doit se faire dans un et un seul thread (le thread principal). Sinon,
bugs bizarres quasiment certains (d'ou mon commentaire sur ta premiere
solution). De plus, toute opération longue et bloquante doit etre évitée
dans le thread principal (celui de l'UI) afin d'éviter que ton appli ne
soit gelée. Donc la solution est: lance l'appel a ton web service de
maniere asychrone en passant l'adresse d'une fonction callback a appeler
lorsque l'appel sera terminé; puis démarre ton Timer; puis dans ta
fonction
callback ferme la fenetre d'attente si elle a été affichée.
Salut,
On Thu, 6 Jan 2005 16:09:01 +0100, AlexC wrote:
J'ai trouvé, mais je ne comprends pas pourquoi ...
Il suffit d'enlever le Thread "DebutThreadAttente"
et de remplacer dans le gestionnaire d'évènemement du timer le
Thread.start
par
frm_wait.show et ca marche ...
Dans ta methode précédente, tu lancait un thread qui se contentait
d'afficher ta fenetre d'attente de maniere non modale (Show ne bloque
pas).
Donc ton thread affichait ta fenetre puis terminait (vu qu'il n'avait plus
rien a faire) entrainant du coup la destruction de ta fenetre. La solution
aurait été d'appeler ShowDialog (bloquante tant que la fenetre n'a pas été
fermée) au lieu de Show. Mais de toute facon, cette solution d'utilier un
autre thread pour afficher ta fenetre était tres crade et t'aurai apporté
tout un tas de bugs bizarres.
Dans ta nouvelle methode, j'imagine que utilise le timer de l'espace de
nom
Windows.Form. Lorsque que ce timer "tick", ta fonction TimerWait_Tick est
executée dans le thread principal (d'ou le timer a été lancé) et non pas
dans un nouveau thread (c'est la particularité du timer Windows.From
comparé aux autres timers disponibles en .NET). Ce thread principal a 2
particularités:
- il ne termine que lorsque tu fermes ton appli
- il possede un boucle de message (c'est cette boucle qui permet aux
fenetres de rester affichées et de recevoir les evenements - ou messages -
clavier, souris...)
Donc ta fonction TimerWait_Tick affiche ta fenetre d'attente dans le
thread
principal puis se termine. Seulement le thread dans lequel est affichée ta
fenetre est toujours la lui, ta fenetre n'est donc pas détruite et reste
affichée.
Cela dit, cela m'étonne quand meme que ta fenetre soit affichée. Car
lorsque TimerWait_Tick s'exécute, ton thread principal devrait en théorie
etre bloqué par l'appel synchrone au service Web et donc incapable de
faire
quoique ce soit, y compris d'afficher ta fenetre (qui ne serait du coup
affichée qu'a la fin de l'appel au service web). Donc je pense que lors de
tes tests, le timer a tické avant que l'appel au web service n'ai
réellement commencé ou alors lorsqu'il était déja terminé. Ce qui n'est
pas
ce que tu cherche a faire je pense.
Dans tout les cas, ton approche ne me semble pas etre la bonne. La regle
d'or pour les applis Windows (c'est dans la doc): tout ce qui a trait a
l'UI doit se faire dans un et un seul thread (le thread principal). Sinon,
bugs bizarres quasiment certains (d'ou mon commentaire sur ta premiere
solution). De plus, toute opération longue et bloquante doit etre évitée
dans le thread principal (celui de l'UI) afin d'éviter que ton appli ne
soit gelée. Donc la solution est: lance l'appel a ton web service de
maniere asychrone en passant l'adresse d'une fonction callback a appeler
lorsque l'appel sera terminé; puis démarre ton Timer; puis dans ta
fonction
callback ferme la fenetre d'attente si elle a été affichée.
Salut,
On Thu, 6 Jan 2005 16:09:01 +0100, AlexC wrote:J'ai trouvé, mais je ne comprends pas pourquoi ...
Il suffit d'enlever le Thread "DebutThreadAttente"
et de remplacer dans le gestionnaire d'évènemement du timer le
Thread.start
par
frm_wait.show et ca marche ...
Dans ta methode précédente, tu lancait un thread qui se contentait
d'afficher ta fenetre d'attente de maniere non modale (Show ne bloque
pas).
Donc ton thread affichait ta fenetre puis terminait (vu qu'il n'avait plus
rien a faire) entrainant du coup la destruction de ta fenetre. La solution
aurait été d'appeler ShowDialog (bloquante tant que la fenetre n'a pas été
fermée) au lieu de Show. Mais de toute facon, cette solution d'utilier un
autre thread pour afficher ta fenetre était tres crade et t'aurai apporté
tout un tas de bugs bizarres.
Dans ta nouvelle methode, j'imagine que utilise le timer de l'espace de
nom
Windows.Form. Lorsque que ce timer "tick", ta fonction TimerWait_Tick est
executée dans le thread principal (d'ou le timer a été lancé) et non pas
dans un nouveau thread (c'est la particularité du timer Windows.From
comparé aux autres timers disponibles en .NET). Ce thread principal a 2
particularités:
- il ne termine que lorsque tu fermes ton appli
- il possede un boucle de message (c'est cette boucle qui permet aux
fenetres de rester affichées et de recevoir les evenements - ou messages -
clavier, souris...)
Donc ta fonction TimerWait_Tick affiche ta fenetre d'attente dans le
thread
principal puis se termine. Seulement le thread dans lequel est affichée ta
fenetre est toujours la lui, ta fenetre n'est donc pas détruite et reste
affichée.
Cela dit, cela m'étonne quand meme que ta fenetre soit affichée. Car
lorsque TimerWait_Tick s'exécute, ton thread principal devrait en théorie
etre bloqué par l'appel synchrone au service Web et donc incapable de
faire
quoique ce soit, y compris d'afficher ta fenetre (qui ne serait du coup
affichée qu'a la fin de l'appel au service web). Donc je pense que lors de
tes tests, le timer a tické avant que l'appel au web service n'ai
réellement commencé ou alors lorsqu'il était déja terminé. Ce qui n'est
pas
ce que tu cherche a faire je pense.
Dans tout les cas, ton approche ne me semble pas etre la bonne. La regle
d'or pour les applis Windows (c'est dans la doc): tout ce qui a trait a
l'UI doit se faire dans un et un seul thread (le thread principal). Sinon,
bugs bizarres quasiment certains (d'ou mon commentaire sur ta premiere
solution). De plus, toute opération longue et bloquante doit etre évitée
dans le thread principal (celui de l'UI) afin d'éviter que ton appli ne
soit gelée. Donc la solution est: lance l'appel a ton web service de
maniere asychrone en passant l'adresse d'une fonction callback a appeler
lorsque l'appel sera terminé; puis démarre ton Timer; puis dans ta
fonction
callback ferme la fenetre d'attente si elle a été affichée.
Ok, c'est vrai que c'est beaucoup plus élégant comme méthode... Par
contre, c'était justement parce que l'appli se retrouve "gelée" que
je voulais afficher ce message d'attente...
En mode asynchrone, je
suppose que l'utilisateur pourrait faire tout et n'importe quoi
pendant l'appel au service web, ce qui peut parfois être embétant...
Imaginons par exemple que l'utilisateur soit en train de créer un
fournisseur, l'enregistrement de celui-ci se fait via un service web,
et en mode asynchrone, l'utilisateur se retrouve à pouvoir faire des
modifs alors que l'enregistrement est en cours, c'est pas top je
trouve
(mais y'a sûrement un autre moyen d'éviter cela...). En fait
ma question reviendrait plutôt à quelque chose du genre : tout les
appels à des services web ne peuvent pas forcément se faire en mode
asynchrone, et donc comment faire dans ce cas là ? (si je dis
n'importe quoi je m'en excuse d'avance :-) )
Ok, c'est vrai que c'est beaucoup plus élégant comme méthode... Par
contre, c'était justement parce que l'appli se retrouve "gelée" que
je voulais afficher ce message d'attente...
En mode asynchrone, je
suppose que l'utilisateur pourrait faire tout et n'importe quoi
pendant l'appel au service web, ce qui peut parfois être embétant...
Imaginons par exemple que l'utilisateur soit en train de créer un
fournisseur, l'enregistrement de celui-ci se fait via un service web,
et en mode asynchrone, l'utilisateur se retrouve à pouvoir faire des
modifs alors que l'enregistrement est en cours, c'est pas top je
trouve
(mais y'a sûrement un autre moyen d'éviter cela...). En fait
ma question reviendrait plutôt à quelque chose du genre : tout les
appels à des services web ne peuvent pas forcément se faire en mode
asynchrone, et donc comment faire dans ce cas là ? (si je dis
n'importe quoi je m'en excuse d'avance :-) )
Ok, c'est vrai que c'est beaucoup plus élégant comme méthode... Par
contre, c'était justement parce que l'appli se retrouve "gelée" que
je voulais afficher ce message d'attente...
En mode asynchrone, je
suppose que l'utilisateur pourrait faire tout et n'importe quoi
pendant l'appel au service web, ce qui peut parfois être embétant...
Imaginons par exemple que l'utilisateur soit en train de créer un
fournisseur, l'enregistrement de celui-ci se fait via un service web,
et en mode asynchrone, l'utilisateur se retrouve à pouvoir faire des
modifs alors que l'enregistrement est en cours, c'est pas top je
trouve
(mais y'a sûrement un autre moyen d'éviter cela...). En fait
ma question reviendrait plutôt à quelque chose du genre : tout les
appels à des services web ne peuvent pas forcément se faire en mode
asynchrone, et donc comment faire dans ce cas là ? (si je dis
n'importe quoi je m'en excuse d'avance :-) )
Ok, je comprends pour la destruction de la fenêtre, maintenant ça me parait
logique. Par contre, qu'est ce que tu entends par bugs bizarres ? Des bugs
d'affichage je suppose ?
Donc je suppose que si je m'amuse à mettre un ShowDialog dans le
TimeWait_Tick, mon appli se retrouve bloquée sur la fenêtre d'attente tant
qu'elle n'est pas fermée ?
Ok, c'est vrai que c'est beaucoup plus élégant comme méthode... Par contre,
c'était justement parce que l'appli se retrouve "gelée" que je voulais
afficher ce message d'attente... En mode asynchrone, je suppose que
l'utilisateur pourrait faire tout et n'importe quoi pendant l'appel au
service web, ce qui peut parfois être embétant...
En fait ma question reviendrait plutôt à quelque chose du genre : tout les
appels à des services web ne peuvent pas forcément se faire en mode
asynchrone, et donc comment faire dans ce cas là ? (si je dis n'importe quoi
je m'en excuse d'avance :-) )
Ok, je comprends pour la destruction de la fenêtre, maintenant ça me parait
logique. Par contre, qu'est ce que tu entends par bugs bizarres ? Des bugs
d'affichage je suppose ?
Donc je suppose que si je m'amuse à mettre un ShowDialog dans le
TimeWait_Tick, mon appli se retrouve bloquée sur la fenêtre d'attente tant
qu'elle n'est pas fermée ?
Ok, c'est vrai que c'est beaucoup plus élégant comme méthode... Par contre,
c'était justement parce que l'appli se retrouve "gelée" que je voulais
afficher ce message d'attente... En mode asynchrone, je suppose que
l'utilisateur pourrait faire tout et n'importe quoi pendant l'appel au
service web, ce qui peut parfois être embétant...
En fait ma question reviendrait plutôt à quelque chose du genre : tout les
appels à des services web ne peuvent pas forcément se faire en mode
asynchrone, et donc comment faire dans ce cas là ? (si je dis n'importe quoi
je m'en excuse d'avance :-) )
Ok, je comprends pour la destruction de la fenêtre, maintenant ça me parait
logique. Par contre, qu'est ce que tu entends par bugs bizarres ? Des bugs
d'affichage je suppose ?
Donc je suppose que si je m'amuse à mettre un ShowDialog dans le
TimeWait_Tick, mon appli se retrouve bloquée sur la fenêtre d'attente tant
qu'elle n'est pas fermée ?
Ok, c'est vrai que c'est beaucoup plus élégant comme méthode... Par contre,
c'était justement parce que l'appli se retrouve "gelée" que je voulais
afficher ce message d'attente... En mode asynchrone, je suppose que
l'utilisateur pourrait faire tout et n'importe quoi pendant l'appel au
service web, ce qui peut parfois être embétant...
En fait ma question reviendrait plutôt à quelque chose du genre : tout les
appels à des services web ne peuvent pas forcément se faire en mode
asynchrone, et donc comment faire dans ce cas là ? (si je dis n'importe quoi
je m'en excuse d'avance :-) )