|  | 		    
					
        
         
          
         
	
          | |  | Deadloop Fra : news1filter@dk2net.d~
 | 
 Dato :  07-05-01 17:34
 | 
 |  | Hey,
 
 Jeg har et program med "deadloop". Det laver forskellige ting en gang
 pr. interval (f.eks. hvert 10 min).
 
 Mit problem er at når jeg lukker programmet så kører det videre.
 Vinduet lukker men når intervallet er gået, så dukker det op igen og
 laver de ting der skal gøres (i test bare en MsgBox). Programet
 skifter _ikke_ processID og "Form_Terminate()" bliver ikke kaldt.
 
 Hjælp...
 
 
 
 |  |  | 
  Asbjørn Sloth Tønnes~ (07-05-2001) 
 
	
          | |  | Kommentar Fra : Asbjørn Sloth Tønnes~
 | 
 Dato :  07-05-01 20:10
 | 
 |  | <news1filter@dk2net.dk> skrev i en meddelelse news:qijdft8hr0ptgpa1b022ikjfip3s6lcdgc@4ax.com...
 > Hey,
 >
 > Jeg har et program med "deadloop". Det laver forskellige ting en gang
 > pr. interval (f.eks. hvert 10 min).
 >
 > Mit problem er at når jeg lukker programmet så kører det videre.
 > Vinduet lukker men når intervallet er gået, så dukker det op igen og
 > laver de ting der skal gøres (i test bare en MsgBox). Programet
 > skifter _ikke_ processID og "Form_Terminate()" bliver ikke kaldt.
 >
 > Hjælp...
 >
 Brug en timer sat til 600000 M$
 
 Asbjørn
 
 
 
 |  |  | 
  Tomas Christiansen (07-05-2001) 
 
	
          | |  | Kommentar Fra : Tomas Christiansen
 | 
 Dato :  07-05-01 22:52
 | 
 |  | Asbjørn Sloth Tønnesen skrev:
 > Brug en timer sat til 600000 M$
 
 Den højeste værdi man kan tildele Interval egenskaben på en Timer er
 desværre kun 65535 ms (dvs. lidt over et minut), men ellers har du ret: Det
 er normalt bedre at bruge en timer, frem for at bruge en løkke, når "noget"
 skal gøres med faste intervaller.
 
 Brug f.eks. en timer sat til 60000 (dvs. 1 minut), og lad den tælle en
 tæller én op. Når tælleren når 10, udføres arbejdet og tælleren nulstilles.
 
 Alternativt, hvis man af én eller anden grund, ønsker fortsat at bruge
 "aktiv venten" (dvs. en løkke), kan følgende trick klare ærterne:
 
 Private Unloading As Boolean
 
 Private Sub Form_Load()
 Me.Show
 Do
 'Dette er bare lykken!
 DoEvents
 Loop Until Unloading
 End Sub
 
 Private Sub Form_Unload(Cancel As Integer)
 Unloading = True
 End Sub
 
 -------
 Tomas
 
 
 
 
 |  |  | 
   Deer Hunter (07-05-2001) 
 
	
          | |  | Kommentar Fra : Deer Hunter
 | 
 Dato :  07-05-01 23:50
 | 
 |  | Hvad med at bruge API istedet ?
 
 Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
 
 Private Sub Command1_Click()
 Debug.Print "Started - " & Time()
 Sleep 65536
 Debug.Print "Ended - " & Time()
 End Sub
 
 
 "Tomas Christiansen" <toc@blikroer.removethis.dk> wrote in message
 news:lOEJ6.406$%65.27107@news.get2net.dk...
 > Asbjørn Sloth Tønnesen skrev:
 > > Brug en timer sat til 600000 M$
 >
 > Den højeste værdi man kan tildele Interval egenskaben på en Timer er
 > desværre kun 65535 ms (dvs. lidt over et minut), men ellers har du ret:
 Det
 > er normalt bedre at bruge en timer, frem for at bruge en løkke, når
 "noget"
 > skal gøres med faste intervaller.
 >
 > Brug f.eks. en timer sat til 60000 (dvs. 1 minut), og lad den tælle en
 > tæller én op. Når tælleren når 10, udføres arbejdet og tælleren
 nulstilles.
 >
 > Alternativt, hvis man af én eller anden grund, ønsker fortsat at bruge
 > "aktiv venten" (dvs. en løkke), kan følgende trick klare ærterne:
 >
 > Private Unloading As Boolean
 >
 > Private Sub Form_Load()
 >     Me.Show
 >     Do
 >         'Dette er bare lykken!
 >         DoEvents
 >     Loop Until Unloading
 > End Sub
 >
 > Private Sub Form_Unload(Cancel As Integer)
 >     Unloading = True
 > End Sub
 >
 > -------
 > Tomas
 >
 >
 
 
 
 
 |  |  | 
    Tomas Christiansen (08-05-2001) 
 
	
          | |  | Kommentar Fra : Tomas Christiansen
 | 
 Dato :  08-05-01 08:02
 | 
 |  | Deer Hunter skrev:
 > Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
 >
 > Private Sub Command1_Click()
 > Debug.Print "Started - " & Time()
 > Sleep 65536
 > Debug.Print "Ended - " & Time()
 > End Sub
 
 Sleep er meget fint at bruge - især hvis man ønsker at benytte "aktiv
 vente"-metoden.
 
 Men man skal også passe meget på med at bruge Sleep!
 
 I den tid programmet sover, reagerer det slet ikke på udefra kommende
 påvirkninger (dvs. events), så det kan godt gå hen og blive problematisk,
 hvis programmet sover et helt minut ad gangen. Prøv bare at flytte vinduet
 på skærmen eller at lukke programmet ned.
 
 Jeg vil som tommelfingerregel sige at man ikke skal lade sit program sove i
 mere end 1 sekund ad gange, og personligt bruger jeg aldrig sleep med
 værdier større end 100 (kombineret med brugen af DoEvents).
 
 -------
 Tomas
 
 
 
 
 |  |  | 
   news1filter@dk2net.d~ (08-05-2001) 
 
	
          | |  | Kommentar Fra : news1filter@dk2net.d~
 | 
 Dato :  08-05-01 13:49
 | 
 |  | > Alternativt, hvis man af én eller anden grund, ønsker fortsat at bruge
 > "aktiv venten" (dvs. en løkke), kan følgende trick klare ærterne:
 
 Undskyld den sene tilbagemelding. Men det var præcis hvad jeg skulle
 bruge. Jeg takker mange gange.
 
 Jeg troede dog at "unload" blev kaldt efter "terminate". Men åbenbart
 ikke. Så hvis jeg havde været lidt kvik, så havde jeg også smidt en
 MsgBox i unload eventen ;)
 
 Men som sagt tak for hjælpen.
 
 
 
 |  |  | 
    Tomas Christiansen (08-05-2001) 
 
	
          | |  | Kommentar Fra : Tomas Christiansen
 | 
 Dato :  08-05-01 14:40
 | 
 |  | 
 
            news1filter skrev:
 > Jeg troede dog at "unload" blev kaldt efter "terminate".
 Nej. Terminate er det sidste, som hænder.
 > Så hvis jeg havde været lidt kvik
 Ingen kommentarer    -------
 Tomas
            
             |  |  | 
 |  |