Niouzes.org  

Précédent   Niouzes.org > Forum > Newsgroup microsoft.public.fr.* 3 Forum > Newsgroup microsoft.public.fr.dotnet.vb
S'inscrire FAQ Membres Calendrier Recherche Messages du jour Marquer les forums comme lus



Réponse

 

LinkBack Outils de la discussion Modes d'affichage
  #1 (permalink)  
Vieux 11/02/2008, 20h23
Annie L.
 
Messages: n/a
Par défaut Attendre un moment

Je cherche Ã*** faire attendre mon application pendant un certain temps
(secondes, centième ou millième de secondes)

Pas de thread car j'attends que quelques secondes!

Quelqu'un aurait-il une solution ?

Merci de vos réponses!
Réponse avec citation
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Niouzes.org
Standard Sponsored Links

  #2 (permalink)  
Vieux 12/02/2008, 06h58
Bill2
 
Messages: n/a
Par défaut Re: Attendre un moment

Annie L. wrote:
> Je cherche à faire attendre mon application pendant un certain temps
> (secondes, centième ou millième de secondes)
>
> Pas de thread car j'attends que quelques secondes!
>
> Quelqu'un aurait-il une solution ?
>
> Merci de vos réponses!



Hello,

Regarde du côté de Threading.Thread.sleep()
--
Bill2
Utilisez Process Manager, gestionnaire de processus automatique :
http://www.bill2-software.com//processmanager/


Réponse avec citation
  #3 (permalink)  
Vieux 12/02/2008, 10h37
andre.araste
 
Messages: n/a
Par défaut Re: Attendre un moment

Bonjour

Attendre un moment.

Vous pouvez utiliser l'API Sleep ou créer une routine de temporisation à la
seconde. Voyez ces codes facilement adaptables en .net :

Private Sub Form_Activate()
Label1 = "Bonjour, patientez 10 secondes ..."
DoEvents
Tempori 10
Label2 = "Le temps est écoulé. Au revoir."
End Sub

Private Sub Tempori(Attente As Single)
Dim Limite As Single
Limite = Timer + Attente
Do While Timer < Limite
Loop
End Sub

Les fractions de secondes acceptées.
--
Bonne réception.
andre.araste***wanadoo.fr
http://perso.orange.fr/andre.araste/
Membre du Club Win's: http://www.clubwins.org
Avertissement: Je ne vends rien.
>

"Annie L." <AnnieL***discussions.microsoft.com> a écrit dans le message de
news: A2AAE962-568C-4207-8219-A9598912FDFA***microsoft.com...
> Je cherche à faire attendre mon application pendant un certain temps
> (secondes, centième ou millième de secondes)
>
> Pas de thread car j'attends que quelques secondes!
>
> Quelqu'un aurait-il une solution ?
>
> Merci de vos réponses!



Réponse avec citation
  #4 (permalink)  
Vieux 12/02/2008, 13h50
Annie L.
 
Messages: n/a
Par défaut Re: Attendre un moment

Voici ce que j'ai trouvé :
Public Sub AttendreDelai(ByVal TempsSeconde As Double)
Dim dblTempsAttente As Double = 0
dblTempsAttente = Environment.TickCount + TempsSeconde
While Environment.TickCount < dblTempsAttente
Application.DoEvents()
End While
End Sub

Mais cette méthode me cause certain problème, et elle est conçu en VB 2003 !!
Voici la même méthode conçu en VB 2005 :

Public Sub AttendreDelai(ByVal TempsSeconde As Double)
Dim dblTempsAttente As Double = 0
dblTempsAttente = My.Computer.Clock.TickCount + TempsSeconde
While My.Computer.Clock.TickCount < dblTempsAttente
My.Application.DoEvents()
End While
End Sub

Il y a juste un hic!!! il me donne une erreur sur "DoEvents" !!! Est-ce
qu'il me manque une un "Imports" ? Pourtant j'ai essayé différentes options
et cela ne fonctionne pas du tout avec "DoEvents"

Merci de vos réponses!




"andre.araste" wrote:

> Bonjour
>
> Attendre un moment.
>
> Vous pouvez utiliser l'API Sleep ou créer une routine de temporisation Ã*** la
> seconde. Voyez ces codes facilement adaptables en .net :
>
> Private Sub Form_Activate()
> Label1 = "Bonjour, patientez 10 secondes ..."
> DoEvents
> Tempori 10
> Label2 = "Le temps est écoulé. Au revoir."
> End Sub
>
> Private Sub Tempori(Attente As Single)
> Dim Limite As Single
> Limite = Timer + Attente
> Do While Timer < Limite
> Loop
> End Sub
>
> Les fractions de secondes acceptées.
> --
> Bonne réception.
> andre.araste***wanadoo.fr
> http://perso.orange.fr/andre.araste/
> Membre du Club Win's: http://www.clubwins.org
> Avertissement: Je ne vends rien.
> >

> "Annie L." <AnnieL***discussions.microsoft.com> a écrit dans le message de
> news: A2AAE962-568C-4207-8219-A9598912FDFA***microsoft.com...
> > Je cherche Ã*** faire attendre mon application pendant un certain temps
> > (secondes, centième ou millième de secondes)
> >
> > Pas de thread car j'attends que quelques secondes!
> >
> > Quelqu'un aurait-il une solution ?
> >
> > Merci de vos réponses!

>
>
>

Réponse avec citation
  #5 (permalink)  
Vieux 12/02/2008, 15h56
Bill2
 
Messages: n/a
Par défaut Re: Attendre un moment

Annie L. wrote:
> Voici ce que j'ai trouvé :
> Public Sub AttendreDelai(ByVal TempsSeconde As Double)
> Dim dblTempsAttente As Double = 0
> dblTempsAttente = Environment.TickCount + TempsSeconde
> While Environment.TickCount < dblTempsAttente
> Application.DoEvents()
> End While
> End Sub
>
> Mais cette méthode me cause certain problème, et elle est conçu en VB
> 2003 !! Voici la même méthode conçu en VB 2005 :
>
> Public Sub AttendreDelai(ByVal TempsSeconde As Double)
> Dim dblTempsAttente As Double = 0
> dblTempsAttente = My.Computer.Clock.TickCount + TempsSeconde
> While My.Computer.Clock.TickCount < dblTempsAttente
> My.Application.DoEvents()
> End While
> End Sub
>
> Il y a juste un hic!!! il me donne une erreur sur "DoEvents" !!!
> Est-ce qu'il me manque une un "Imports" ? Pourtant j'ai essayé
> différentes options et cela ne fonctionne pas du tout avec "DoEvents"
>
> Merci de vos réponses!
>


pourquoi réinventer la roue ?
il y a Threading.Thread.sleep()
qui prend en paramètre un nb de millisecondes ...
ça devrait faire l'affaire, non ?

--
Bill2
Utilisez Process Manager, gestionnaire de processus automatique :
http://www.bill2-software.com/processmanager/


Réponse avec citation
  #6 (permalink)  
Vieux 12/02/2008, 16h30
Annie L.
 
Messages: n/a
Par défaut Re: Attendre un moment

Donc, si je comprends bien, je veux attendre 1 seconde =
Threading.Thread.Sleep(1000) tout simplement !!!!

Et pourtant après avoir fait des tests, cela ne fonctionne pas par rapport Ã***
ce que je veux faire!!!!! Je m'explique : lorsque j'ajoute des produits dans
une facture, je crée un "CodeID" qui se sert de l'heure système et date du
jour et j'appelle la fonction ci-dessous "AttendreDelai" sinon il y a
plusieurs produits qui ont le même "CodeID" car l'ordinateur est très rapide.
C'est pourquoi avec cette fonction "AttendreDelai = 0.01" fait que tous mes
"CodeID" sont tous différents!
J'essai le même procédé avec "Threading.Thread.sleep(1000)" et tous mes
"CodeID" de produits sont presque identiques!!!
VoilÃ*** pourquoi cela ne fonctionne pas !!!! Pourquoi donc ??????

Merci de vos réponses!

"Bill2" wrote:

> Annie L. wrote:
> > Voici ce que j'ai trouvé :
> > Public Sub AttendreDelai(ByVal TempsSeconde As Double)
> > Dim dblTempsAttente As Double = 0
> > dblTempsAttente = Environment.TickCount + TempsSeconde
> > While Environment.TickCount < dblTempsAttente
> > Application.DoEvents()
> > End While
> > End Sub
> >
> > Mais cette méthode me cause certain problème, et elle est conçu en VB
> > 2003 !! Voici la même méthode conçu en VB 2005 :
> >
> > Public Sub AttendreDelai(ByVal TempsSeconde As Double)
> > Dim dblTempsAttente As Double = 0
> > dblTempsAttente = My.Computer.Clock.TickCount + TempsSeconde
> > While My.Computer.Clock.TickCount < dblTempsAttente
> > My.Application.DoEvents()
> > End While
> > End Sub
> >
> > Il y a juste un hic!!! il me donne une erreur sur "DoEvents" !!!
> > Est-ce qu'il me manque une un "Imports" ? Pourtant j'ai essayé
> > différentes options et cela ne fonctionne pas du tout avec "DoEvents"
> >
> > Merci de vos réponses!
> >

>
> pourquoi réinventer la roue ?
> il y a Threading.Thread.sleep()
> qui prend en paramètre un nb de millisecondes ...
> ça devrait faire l'affaire, non ?
>
> --
> Bill2
> Utilisez Process Manager, gestionnaire de processus automatique :
> http://www.bill2-software.com/processmanager/
>
>
>

Réponse avec citation
  #7 (permalink)  
Vieux 12/02/2008, 17h41
Annie L.
 
Messages: n/a
Par défaut Re: Attendre un moment

Après différents essais, j'ai trouvé le problème avec le Threading.....
Avant je renvoyais une valeur comme suit "0.01" ou "0.001" et cela
fonctionnait très bien. Mais avec le Threading... il faut lui passer "100" ou
"10" ou "1" et non des fractions car il ne réagit pas avec des fractions
comme "0.001"!!!

Tout est réglé et fonctionne très bien!

Merci pour votre aide!

"Annie L." wrote:

> Donc, si je comprends bien, je veux attendre 1 seconde =
> Threading.Thread.Sleep(1000) tout simplement !!!!
>
> Et pourtant après avoir fait des tests, cela ne fonctionne pas par rapport Ã***
> ce que je veux faire!!!!! Je m'explique : lorsque j'ajoute des produits dans
> une facture, je crée un "CodeID" qui se sert de l'heure système et date du
> jour et j'appelle la fonction ci-dessous "AttendreDelai" sinon il y a
> plusieurs produits qui ont le même "CodeID" car l'ordinateur est très rapide.
> C'est pourquoi avec cette fonction "AttendreDelai = 0.01" fait que tous mes
> "CodeID" sont tous différents!
> J'essai le même procédé avec "Threading.Thread.sleep(1000)" et tous mes
> "CodeID" de produits sont presque identiques!!!
> VoilÃ*** pourquoi cela ne fonctionne pas !!!! Pourquoi donc ??????
>
> Merci de vos réponses!
>
> "Bill2" wrote:
>
> > Annie L. wrote:
> > > Voici ce que j'ai trouvé :
> > > Public Sub AttendreDelai(ByVal TempsSeconde As Double)
> > > Dim dblTempsAttente As Double = 0
> > > dblTempsAttente = Environment.TickCount + TempsSeconde
> > > While Environment.TickCount < dblTempsAttente
> > > Application.DoEvents()
> > > End While
> > > End Sub
> > >
> > > Mais cette méthode me cause certain problème, et elle est conçu en VB
> > > 2003 !! Voici la même méthode conçu en VB 2005 :
> > >
> > > Public Sub AttendreDelai(ByVal TempsSeconde As Double)
> > > Dim dblTempsAttente As Double = 0
> > > dblTempsAttente = My.Computer.Clock.TickCount + TempsSeconde
> > > While My.Computer.Clock.TickCount < dblTempsAttente
> > > My.Application.DoEvents()
> > > End While
> > > End Sub
> > >
> > > Il y a juste un hic!!! il me donne une erreur sur "DoEvents" !!!
> > > Est-ce qu'il me manque une un "Imports" ? Pourtant j'ai essayé
> > > différentes options et cela ne fonctionne pas du tout avec "DoEvents"
> > >
> > > Merci de vos réponses!
> > >

> >
> > pourquoi réinventer la roue ?
> > il y a Threading.Thread.sleep()
> > qui prend en paramètre un nb de millisecondes ...
> > ça devrait faire l'affaire, non ?
> >
> > --
> > Bill2
> > Utilisez Process Manager, gestionnaire de processus automatique :
> > http://www.bill2-software.com/processmanager/
> >
> >
> >

Réponse avec citation
  #8 (permalink)  
Vieux 12/02/2008, 17h44
Patrice
 
Messages: n/a
Par défaut Re: Attendre un moment

Difficile à dire sans voir le code *minimum* qui montre le problème.

Exemple :

For i As Integer = 0 To 10
Debug.WriteLine(Date.Now.Ticks)
System.Threading.Thread.Sleep(1000)
Next


Personnellement je ne me baserais pas sur la date et l'heure mais sur un
compteur ou un GUID pour pouvoir créer ces lignes aussi rapidement que
possible..

--
Patrice

"Annie L." <AnnieL***discussions.microsoft.com> a écrit dans le message de
news: 34FA4C70-5F66-4302-B4D4-68599749AC28***microsoft.com...
> Donc, si je comprends bien, je veux attendre 1 seconde =
> Threading.Thread.Sleep(1000) tout simplement !!!!
>
> Et pourtant après avoir fait des tests, cela ne fonctionne pas par rapport
> à
> ce que je veux faire!!!!! Je m'explique : lorsque j'ajoute des produits
> dans
> une facture, je crée un "CodeID" qui se sert de l'heure système et date du
> jour et j'appelle la fonction ci-dessous "AttendreDelai" sinon il y a
> plusieurs produits qui ont le même "CodeID" car l'ordinateur est très
> rapide.
> C'est pourquoi avec cette fonction "AttendreDelai = 0.01" fait que tous
> mes
> "CodeID" sont tous différents!
> J'essai le même procédé avec "Threading.Thread.sleep(1000)" et tous mes
> "CodeID" de produits sont presque identiques!!!
> Voilà pourquoi cela ne fonctionne pas !!!! Pourquoi donc ??????
>
> Merci de vos réponses!
>
> "Bill2" wrote:
>
>> Annie L. wrote:
>> > Voici ce que j'ai trouvé :
>> > Public Sub AttendreDelai(ByVal TempsSeconde As Double)
>> > Dim dblTempsAttente As Double = 0
>> > dblTempsAttente = Environment.TickCount + TempsSeconde
>> > While Environment.TickCount < dblTempsAttente
>> > Application.DoEvents()
>> > End While
>> > End Sub
>> >
>> > Mais cette méthode me cause certain problème, et elle est conçu en VB
>> > 2003 !! Voici la même méthode conçu en VB 2005 :
>> >
>> > Public Sub AttendreDelai(ByVal TempsSeconde As Double)
>> > Dim dblTempsAttente As Double = 0
>> > dblTempsAttente = My.Computer.Clock.TickCount + TempsSeconde
>> > While My.Computer.Clock.TickCount < dblTempsAttente
>> > My.Application.DoEvents()
>> > End While
>> > End Sub
>> >
>> > Il y a juste un hic!!! il me donne une erreur sur "DoEvents" !!!
>> > Est-ce qu'il me manque une un "Imports" ? Pourtant j'ai essayé
>> > différentes options et cela ne fonctionne pas du tout avec "DoEvents"
>> >
>> > Merci de vos réponses!
>> >

>>
>> pourquoi réinventer la roue ?
>> il y a Threading.Thread.sleep()
>> qui prend en paramètre un nb de millisecondes ...
>> ça devrait faire l'affaire, non ?
>>
>> --
>> Bill2
>> Utilisez Process Manager, gestionnaire de processus automatique :
>> http://www.bill2-software.com/processmanager/
>>
>>
>>



Réponse avec citation
  #9 (permalink)  
Vieux 12/02/2008, 18h27
Annie L.
 
Messages: n/a
Par défaut Re: Attendre un moment

Il faut vivre le problème pour comprendre pourquoi je me base sur la date et
l'heure pour créer des "CodeID" Si je te parle d'une version réseau avec plus
de 20 postes qui font des factures en même temps !!!!!!!!!!
Récupérer des numéros pour savoir où on est rendu dans le codeId et durant
ce temps quelqu'un d'autre a déjÃ*** pris ce numéro (EN RÉSEAU) !!!!!

Je viens de me rendre compte que "Threading.Thread.Sleep" me cause d'autres
problèmes!!!! Je me dois de revenir Ã*** mon ancienne méthode qui d'ailleurs
fonctionne très bien et ne me cause pas de problèmes!!! (voir post plus haut)


Merci!


"Patrice" wrote:

> Difficile Ã*** dire sans voir le code *minimum* qui montre le problème.
>
> Exemple :
>
> For i As Integer = 0 To 10
> Debug.WriteLine(Date.Now.Ticks)
> System.Threading.Thread.Sleep(1000)
> Next
>
>
> Personnellement je ne me baserais pas sur la date et l'heure mais sur un
> compteur ou un GUID pour pouvoir créer ces lignes aussi rapidement que
> possible..
>
> --
> Patrice
>
> "Annie L." <AnnieL***discussions.microsoft.com> a écrit dans le message de
> news: 34FA4C70-5F66-4302-B4D4-68599749AC28***microsoft.com...
> > Donc, si je comprends bien, je veux attendre 1 seconde =
> > Threading.Thread.Sleep(1000) tout simplement !!!!
> >
> > Et pourtant après avoir fait des tests, cela ne fonctionne pas par rapport
> > Ã***
> > ce que je veux faire!!!!! Je m'explique : lorsque j'ajoute des produits
> > dans
> > une facture, je crée un "CodeID" qui se sert de l'heure système et date du
> > jour et j'appelle la fonction ci-dessous "AttendreDelai" sinon il y a
> > plusieurs produits qui ont le même "CodeID" car l'ordinateur est très
> > rapide.
> > C'est pourquoi avec cette fonction "AttendreDelai = 0.01" fait que tous
> > mes
> > "CodeID" sont tous différents!
> > J'essai le même procédé avec "Threading.Thread.sleep(1000)" et tous mes
> > "CodeID" de produits sont presque identiques!!!
> > VoilÃ*** pourquoi cela ne fonctionne pas !!!! Pourquoi donc ??????
> >
> > Merci de vos réponses!
> >
> > "Bill2" wrote:
> >
> >> Annie L. wrote:
> >> > Voici ce que j'ai trouvé :
> >> > Public Sub AttendreDelai(ByVal TempsSeconde As Double)
> >> > Dim dblTempsAttente As Double = 0
> >> > dblTempsAttente = Environment.TickCount + TempsSeconde
> >> > While Environment.TickCount < dblTempsAttente
> >> > Application.DoEvents()
> >> > End While
> >> > End Sub
> >> >
> >> > Mais cette méthode me cause certain problème, et elle est conçu en VB
> >> > 2003 !! Voici la même méthode conçu en VB 2005 :
> >> >
> >> > Public Sub AttendreDelai(ByVal TempsSeconde As Double)
> >> > Dim dblTempsAttente As Double = 0
> >> > dblTempsAttente = My.Computer.Clock.TickCount + TempsSeconde
> >> > While My.Computer.Clock.TickCount < dblTempsAttente
> >> > My.Application.DoEvents()
> >> > End While
> >> > End Sub
> >> >
> >> > Il y a juste un hic!!! il me donne une erreur sur "DoEvents" !!!
> >> > Est-ce qu'il me manque une un "Imports" ? Pourtant j'ai essayé
> >> > différentes options et cela ne fonctionne pas du tout avec "DoEvents"
> >> >
> >> > Merci de vos réponses!
> >> >
> >>
> >> pourquoi réinventer la roue ?
> >> il y a Threading.Thread.sleep()
> >> qui prend en paramètre un nb de millisecondes ...
> >> ça devrait faire l'affaire, non ?
> >>
> >> --
> >> Bill2
> >> Utilisez Process Manager, gestionnaire de processus automatique :
> >> http://www.bill2-software.com/processmanager/
> >>
> >>
> >>

>
>
>

Réponse avec citation
  #10 (permalink)  
Vieux 12/02/2008, 19h02
Patrice
 
Messages: n/a
Par défaut Re: Attendre un moment

D'où justement l'intérêt du GUID qui permet de créer des identifiants à
n'importe quel moment, à n'importe quel endroit (avec en pratique une
probabilité de collision quasi nulle)
(http://msdn2.microsoft.com/fr-fr/lib...stem.guid.aspx).

Après ton approche fonctionnera sans doute aussi très bien avec sans doute
une très faible probabilité de collision.

Thread.Sleep pause le thread courant. Attention à DoEvents qui pourrait
avoir des effets également (en laissant d'autres évènements être traités).

--
Patrice

"Annie L." <AnnieL***discussions.microsoft.com> a écrit dans le message de
news: E10A3293-160F-4E7D-89AD-0769D8396193***microsoft.com...
> Il faut vivre le problème pour comprendre pourquoi je me base sur la date
> et
> l'heure pour créer des "CodeID" Si je te parle d'une version réseau avec
> plus
> de 20 postes qui font des factures en même temps !!!!!!!!!!
> Récupérer des numéros pour savoir où on est rendu dans le codeId et durant
> ce temps quelqu'un d'autre a déjà pris ce numéro (EN RÉSEAU) !!!!!
>
> Je viens de me rendre compte que "Threading.Thread.Sleep" me cause
> d'autres
> problèmes!!!! Je me dois de revenir à mon ancienne méthode qui d'ailleurs
> fonctionne très bien et ne me cause pas de problèmes!!! (voir post plus
> haut)
>
>
> Merci!
>
>
> "Patrice" wrote:
>
>> Difficile à dire sans voir le code *minimum* qui montre le problème.
>>
>> Exemple :
>>
>> For i As Integer = 0 To 10
>> Debug.WriteLine(Date.Now.Ticks)
>> System.Threading.Thread.Sleep(1000)
>> Next
>>
>>
>> Personnellement je ne me baserais pas sur la date et l'heure mais sur un
>> compteur ou un GUID pour pouvoir créer ces lignes aussi rapidement que
>> possible..
>>
>> --
>> Patrice
>>
>> "Annie L." <AnnieL***discussions.microsoft.com> a écrit dans le message de
>> news: 34FA4C70-5F66-4302-B4D4-68599749AC28***microsoft.com...
>> > Donc, si je comprends bien, je veux attendre 1 seconde =
>> > Threading.Thread.Sleep(1000) tout simplement !!!!
>> >
>> > Et pourtant après avoir fait des tests, cela ne fonctionne pas par
>> > rapport
>> > à
>> > ce que je veux faire!!!!! Je m'explique : lorsque j'ajoute des
>> > produits
>> > dans
>> > une facture, je crée un "CodeID" qui se sert de l'heure système et date
>> > du
>> > jour et j'appelle la fonction ci-dessous "AttendreDelai" sinon il y a
>> > plusieurs produits qui ont le même "CodeID" car l'ordinateur est très
>> > rapide.
>> > C'est pourquoi avec cette fonction "AttendreDelai = 0.01" fait que tous
>> > mes
>> > "CodeID" sont tous différents!
>> > J'essai le même procédé avec "Threading.Thread.sleep(1000)" et tous mes
>> > "CodeID" de produits sont presque identiques!!!
>> > Voilà pourquoi cela ne fonctionne pas !!!! Pourquoi donc ??????
>> >
>> > Merci de vos réponses!
>> >
>> > "Bill2" wrote:
>> >
>> >> Annie L. wrote:
>> >> > Voici ce que j'ai trouvé :
>> >> > Public Sub AttendreDelai(ByVal TempsSeconde As Double)
>> >> > Dim dblTempsAttente As Double = 0
>> >> > dblTempsAttente = Environment.TickCount + TempsSeconde
>> >> > While Environment.TickCount < dblTempsAttente
>> >> > Application.DoEvents()
>> >> > End While
>> >> > End Sub
>> >> >
>> >> > Mais cette méthode me cause certain problème, et elle est conçu en
>> >> > VB
>> >> > 2003 !! Voici la même méthode conçu en VB 2005 :
>> >> >
>> >> > Public Sub AttendreDelai(ByVal TempsSeconde As Double)
>> >> > Dim dblTempsAttente As Double = 0
>> >> > dblTempsAttente = My.Computer.Clock.TickCount + TempsSeconde
>> >> > While My.Computer.Clock.TickCount < dblTempsAttente
>> >> > My.Application.DoEvents()
>> >> > End While
>> >> > End Sub
>> >> >
>> >> > Il y a juste un hic!!! il me donne une erreur sur "DoEvents" !!!
>> >> > Est-ce qu'il me manque une un "Imports" ? Pourtant j'ai essayé
>> >> > différentes options et cela ne fonctionne pas du tout avec
>> >> > "DoEvents"
>> >> >
>> >> > Merci de vos réponses!
>> >> >
>> >>
>> >> pourquoi réinventer la roue ?
>> >> il y a Threading.Thread.sleep()
>> >> qui prend en paramètre un nb de millisecondes ...
>> >> ça devrait faire l'affaire, non ?
>> >>
>> >> --
>> >> Bill2
>> >> Utilisez Process Manager, gestionnaire de processus automatique :
>> >> http://www.bill2-software.com/processmanager/
>> >>
>> >>
>> >>

>>
>>
>>



Réponse avec citation
  #11 (permalink)  
Vieux 12/02/2008, 19h39
Annie L.
 
Messages: n/a
Par défaut Re: Attendre un moment

En éseau je ne peux pas travailler avec une "très faible probabilité de
collision" parce que cela va engendrer des erreurs d'enregistrements et que
des clients mécontents vont appeler pour se plaindre et il faut éviter cela Ã***
tout prix.
Ma méthode repose sur des centièmes et des millièmes de seconde pour générer
mes CodeID et je n'ai jamais eu de problèmes auparavant (pendant 5 ans) !!!!
On ne me signale aucuns problèmes concernant ma version réseau, aucune
collision, même pratiquement aucun traffic réseau!!

Ce que je voulais dans ce "post" ne concerne même pas ce que j'ai décrit
ci-haut!!
Ce que je voulais c'est d'attendre un certain temps avant de poursuivre un
traitement et que "Threading..." me cause des problèmes selon l'utilisation
que je veux en faire !!! J'ai décidé de conserver ma méthode qui fonctionne
très bien même s'il y a des façons plus élégante de le faire mais cela ne
fonctionne pas dans mon cas !

Merci !

"Patrice" wrote:

> D'où justement l'intérêt du GUID qui permet de créer des identifiants Ã***
> n'importe quel moment, Ã*** n'importe quel endroit (avec en pratique une
> probabilité de collision quasi nulle)
> (http://msdn2.microsoft.com/fr-fr/lib...stem.guid.aspx).
>
> Après ton approche fonctionnera sans doute aussi très bien avec sans doute
> une très faible probabilité de collision.
>
> Thread.Sleep pause le thread courant. Attention Ã*** DoEvents qui pourrait
> avoir des effets également (en laissant d'autres évènements être traités).
>
> --
> Patrice
>
> "Annie L." <AnnieL***discussions.microsoft.com> a écrit dans le message de
> news: E10A3293-160F-4E7D-89AD-0769D8396193***microsoft.com...
> > Il faut vivre le problème pour comprendre pourquoi je me base sur la date
> > et
> > l'heure pour créer des "CodeID" Si je te parle d'une version réseau avec
> > plus
> > de 20 postes qui font des factures en même temps !!!!!!!!!!
> > Récupérer des numéros pour savoir où on est rendu dans le codeId et durant
> > ce temps quelqu'un d'autre a déjÃ*** pris ce numéro (EN RÉSEAU) !!!!!
> >
> > Je viens de me rendre compte que "Threading.Thread.Sleep" me cause
> > d'autres
> > problèmes!!!! Je me dois de revenir Ã*** mon ancienne méthode qui d'ailleurs
> > fonctionne très bien et ne me cause pas de problèmes!!! (voir post plus
> > haut)
> >
> >
> > Merci!
> >
> >
> > "Patrice" wrote:
> >
> >> Difficile Ã*** dire sans voir le code *minimum* qui montre le problème.
> >>
> >> Exemple :
> >>
> >> For i As Integer = 0 To 10
> >> Debug.WriteLine(Date.Now.Ticks)
> >> System.Threading.Thread.Sleep(1000)
> >> Next
> >>
> >>
> >> Personnellement je ne me baserais pas sur la date et l'heure mais sur un
> >> compteur ou un GUID pour pouvoir créer ces lignes aussi rapidement que
> >> possible..
> >>
> >> --
> >> Patrice
> >>
> >> "Annie L." <AnnieL***discussions.microsoft.com> a écrit dans le message de
> >> news: 34FA4C70-5F66-4302-B4D4-68599749AC28***microsoft.com...
> >> > Donc, si je comprends bien, je veux attendre 1 seconde =
> >> > Threading.Thread.Sleep(1000) tout simplement !!!!
> >> >
> >> > Et pourtant après avoir fait des tests, cela ne fonctionne pas par
> >> > rapport
> >> > Ã***
> >> > ce que je veux faire!!!!! Je m'explique : lorsque j'ajoute des
> >> > produits
> >> > dans
> >> > une facture, je crée un "CodeID" qui se sert de l'heure système et date
> >> > du
> >> > jour et j'appelle la fonction ci-dessous "AttendreDelai" sinon il y a
> >> > plusieurs produits qui ont le même "CodeID" car l'ordinateur est très
> >> > rapide.
> >> > C'est pourquoi avec cette fonction "AttendreDelai = 0.01" fait que tous
> >> > mes
> >> > "CodeID" sont tous différents!
> >> > J'essai le même procédé avec "Threading.Thread.sleep(1000)" et tous mes
> >> > "CodeID" de produits sont presque identiques!!!
> >> > VoilÃ*** pourquoi cela ne fonctionne pas !!!! Pourquoi donc ??????
> >> >
> >> > Merci de vos réponses!
> >> >
> >> > "Bill2" wrote:
> >> >
> >> >> Annie L. wrote:
> >> >> > Voici ce que j'ai trouvé :
> >> >> > Public Sub AttendreDelai(ByVal TempsSeconde As Double)
> >> >> > Dim dblTempsAttente As Double = 0
> >> >> > dblTempsAttente = Environment.TickCount + TempsSeconde
> >> >> > While Environment.TickCount < dblTempsAttente
> >> >> > Application.DoEvents()
> >> >> > End While
> >> >> > End Sub
> >> >> >
> >> >> > Mais cette méthode me cause certain problème, et elle est conçu en
> >> >> > VB
> >> >> > 2003 !! Voici la même méthode conçu en VB 2005 :
> >> >> >
> >> >> > Public Sub AttendreDelai(ByVal TempsSeconde As Double)
> >> >> > Dim dblTempsAttente As Double = 0
> >> >> > dblTempsAttente = My.Computer.Clock.TickCount + TempsSeconde
> >> >> > While My.Computer.Clock.TickCount < dblTempsAttente
> >> >> > My.Application.DoEvents()
> >> >> > End While
> >> >> > End Sub
> >> >> >
> >> >> > Il y a juste un hic!!! il me donne une erreur sur "DoEvents" !!!
> >> >> > Est-ce qu'il me manque une un "Imports" ? Pourtant j'ai essayé
> >> >> > différentes options et cela ne fonctionne pas du tout avec
> >> >> > "DoEvents"
> >> >> >
> >> >> > Merci de vos réponses!
> >> >> >
> >> >>
> >> >> pourquoi réinventer la roue ?
> >> >> il y a Threading.Thread.sleep()
> >> >> qui prend en paramètre un nb de millisecondes ...
> >> >> ça devrait faire l'affaire, non ?
> >> >>
> >> >> --
> >> >> Bill2
> >> >> Utilisez Process Manager, gestionnaire de processus automatique :
> >> >> http://www.bill2-software.com/processmanager/
> >> >>
> >> >>
> >> >>
> >>
> >>
> >>

>
>
>

Réponse avec citation
  #12 (permalink)  
Vieux 13/02/2008, 08h47
Guillaume Davion
 
Messages: n/a
Par défaut Re: Attendre un moment

On 12 fév, 20:39, Annie L. <Ann...***discussions.microsoft.com> wrote:
> En éseau je ne peux pas travailler avec une "très faible probabilitéde
> collision" parce que cela va engendrer des erreurs d'enregistrements et que
> des clients mécontents vont appeler pour se plaindre et il faut évitercela à
> tout prix.
> Ma méthode repose sur des centièmes et des millièmes de seconde pourgénérer
> mes CodeID et je n'ai jamais eu de problèmes auparavant (pendant 5 ans) !!!!
> On ne me signale aucuns problèmes concernant ma version réseau, aucune
> collision, même pratiquement aucun traffic réseau!!
>
> Ce que je voulais dans ce "post" ne concerne même pas ce que j'ai décrit
> ci-haut!!
> Ce que je voulais c'est d'attendre un certain temps avant de poursuivre un
> traitement et que "Threading..." me cause des problèmes selon l'utilisation
> que je veux en faire !!! J'ai décidé de conserver ma méthode qui fonctionne
> très bien même s'il y a des façons plus élégante de le faire mais cela ne
> fonctionne pas dans mon cas !
>
> Merci !
>
>
>
> "Patrice" wrote:
> > D'où justement l'intérêt du GUID qui permet de créer des identifiants à
> > n'importe quel moment, à n'importe quel endroit (avec en pratique une
> > probabilité de collision quasi nulle)
> > (http://msdn2.microsoft.com/fr-fr/lib...stem.guid.aspx).

>
> > Après ton approche fonctionnera sans doute aussi très bien avec sansdoute
> > une très faible probabilité de collision.

>
> > Thread.Sleep pause le thread courant. Attention à DoEvents qui pourrait
> > avoir des effets également (en laissant d'autres évènements êtretraités).

>
> > --
> > Patrice

>
> > "Annie L." <Ann...***discussions.microsoft.com> a écrit dans le message de
> >news: E10A3293-160F-4E7D-89AD-0769D8396__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i? a63jfAD$z__***microsoft.com...
> > > Il faut vivre le problème pour comprendre pourquoi je me base sur ladate
> > > et
> > > l'heure pour créer des "CodeID" Si je te parle d'une version réseau avec
> > > plus
> > > de 20 postes qui font des factures en même temps !!!!!!!!!!
> > > Récupérer des numéros pour savoir où on est rendu dans le codeId et durant
> > > ce temps quelqu'un d'autre a déjà pris ce numéro (EN RÉSEAU) !!!!!

>
> > > Je viens de me rendre compte que "Threading.Thread.Sleep" me cause
> > > d'autres
> > > problèmes!!!! Je me dois de revenir à mon ancienne méthode qui d'ailleurs
> > > fonctionne très bien et ne me cause pas de problèmes!!! ***(voir post plus
> > > haut)

>
> > > Merci!

>
> > > "Patrice" wrote:

>
> > >> Difficile à dire sans voir le code *minimum* qui montre le problème.

>
> > >> Exemple :

>
> > >> *** For i As Integer = 0 To 10
> > >> *** *** *** *** *** *** Debug.WriteLine(Date.Now.Ticks)
> > >> *** *** *** *** *** *** System.Threading.Thread.Sleep(1000)
> > >> *** *** *** *** Next

>
> > >> Personnellement je ne me baserais pas sur la date et l'heure mais surun
> > >> compteur ou un GUID pour pouvoir créer ces lignes aussi rapidement que
> > >> possible..

>
> > >> --
> > >> Patrice

>
> > >> "Annie L." <Ann...***discussions.microsoft.com> a écrit dans le message de
> > >>news: 34FA4C70-5F66-4302-B4D4-68599749A__BEGIN_MASK_n#9g02mG7!__...__END_MASK_i? a63jfAD$z__***microsoft.com...
> > >> > Donc, si je comprends bien, je veux attendre 1 seconde =
> > >> > Threading.Thread.Sleep(1000) *** *** ***tout simplement !!!!

>
> > >> > Et pourtant après avoir fait des tests, cela ne fonctionne pas par
> > >> > rapport
> > >> > à
> > >> > ce que je veux faire!!!!! Je m'explique : ***lorsque j'ajoute des
> > >> > produits
> > >> > dans
> > >> > une facture, je crée un "CodeID" qui se sert de l'heure systèmeet date
> > >> > du
> > >> > jour et j'appelle la fonction ci-dessous "AttendreDelai" sinon il ya
> > >> > plusieurs produits qui ont le même "CodeID" car l'ordinateur est très
> > >> > rapide.
> > >> > C'est pourquoi avec cette fonction "AttendreDelai = 0.01" fait que tous
> > >> > mes
> > >> > "CodeID" sont tous différents!
> > >> > J'essai le même procédé avec "Threading.Thread.sleep(1000)" et tous mes
> > >> > "CodeID" de produits sont presque identiques!!!
> > >> > Voilà pourquoi cela ne fonctionne pas !!!! *** Pourquoi donc ??????

>
> > >> > Merci de vos réponses!

>
> > >> > "Bill2" wrote:

>
> > >> >> Annie L. wrote:
> > >> >> > Voici ce que j'ai trouvé :
> > >> >> > *** Public Sub AttendreDelai(ByVal TempsSeconde As Double)
> > >> >> > *** *** ***Dim dblTempsAttente As Double = 0
> > >> >> > *** *** ***dblTempsAttente = Environment.TickCount + TempsSeconde
> > >> >> > *** *** ***While Environment.TickCount < dblTempsAttente
> > >> >> > *** *** *** *** Application.DoEvents()
> > >> >> > *** *** ***End While
> > >> >> > *** End Sub

>
> > >> >> > Mais cette méthode me cause certain problème, et elle est conçu en
> > >> >> > VB
> > >> >> > 2003 !! Voici la même méthode conçu en VB 2005 :

>
> > >> >> > *** Public Sub AttendreDelai(ByVal TempsSeconde As Double)
> > >> >> > *** *** ***Dim dblTempsAttente As Double = 0
> > >> >> > *** *** ***dblTempsAttente = My.Computer.Clock.TickCount + TempsSeconde
> > >> >> > *** *** ***While My.Computer.Clock.TickCount < dblTempsAttente
> > >> >> > *** *** *** *** My.Application.DoEvents()
> > >> >> > *** *** ***End While
> > >> >> > *** End Sub

>
> > >> >> > Il y a juste un hic!!! il me donne une erreur sur "DoEvents" !!!
> > >> >> > Est-ce qu'il me manque une un "Imports" ? ***Pourtant j'ai essayé
> > >> >> > différentes options et cela ne fonctionne pas du tout avec
> > >> >> > "DoEvents"

Je pense qu'il y a plus de chance qu'un client gagne le gros lot à
l'Euromillion qu'il y ait une collision entre deux guid identiques...
Après, si cela représente malgré tout un trop gros risque,
effectivement ok.

>
> > >> >> > Merci de vos réponses!

>
> > >> >> pourquoi réinventer la roue ?
> > >> >> il y a Threading.Thread.sleep()
> > >> >> qui prend en paramètre un nb de millisecondes ...
> > >> >> ça devrait faire l'affaire, non ?

>
> > >> >> --
> > >> >> Bill2
> > >> >> Utilisez Process Manager, gestionnaire de processus automatique :
> > >> >>http://www.bill2-software.com/processmanager/- Masquer le texte desmessages précédents -

>
> - Afficher le texte des messages précédents -


Réponse avec citation
 
Réponse
Tags: ,



Outils de la discussion
Modes d'affichage

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Discussions similaires

Discussion Auteur Forum Réponses Dernier message
Il fallait s'y attendre.... Goonies Newsgroup fr.rec.sport.football 0 23/07/2008 12h19
Re: On ne peut plus attendre Thierry Newsgroup fr.soc.politique 0 11/04/2008 13h29
Re: On ne peut plus attendre lgjean Newsgroup fr.soc.politique 0 11/04/2008 13h13
LED : attendre des jours meilleurs Charles VASSALLO Newsgroup fr.rec.photo.labo.numerique 1 23/11/2007 12h41
Mio 168 : attendre le A201 ? Tochiro Newsgroup alt.fr.pocket.pc 0 03/10/2005 13h21


Fuseau horaire GMT. Il est actuellement 23h46.

Italiano - German - English - Español


Édité par : vBulletin® version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc. Tous droits réservés.
Version française #13 par l'association vBulletin francophone


Politique - Droit - Philosophie - Football - Medicine - Française - Bricolage - Photo - Mac Os X - Divers - Physique - Jardinage
Mecanique - Moto - Photographie - Rail - Route - Aviation - Cinema - Linux - Psychanalyse - Finance - Enigmes - Rugby
Environnement - Histoire - Programmes TV - Education - Travail - Voyages - Windows - Immobilier - Cuisine
Windows XP - Excel - Word - Outlook - Access - Internet Explorer - Office - Vista

Page generated in 0,55488 seconds with 11 queries