Français
Forum

Minuteur-Problem

 
- page 1 -



E.T.
là oui ici:  [...]  aucun réaction trop verzeichnen était, voudrais je cela Thema nochmal aufgreifen. je hab là sous "Mit Settimer funktionierts..."  posté, cela es avec "Settimer" funktioniert.

malheureusement scheind dem doch pas so trop son !!!

Hab mich heut la fois hingesetzt, et mon eigenes Prog la fois wieder getestet: et siehe là, irgendwann (so ab 250 Durchläufen) wird aussi qui Boucle ("Mit Settimer funktionierts..." ) toujours plus rapide (et plus rapide, et plus rapide...).

ou bien sollte là un Bug im XProfan son ??

Werd's jetz la fois avec einem "Killtimer"  dans qui Boucle essayer...
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
09.11.2010  
 



« cette Beitrag wurde comme Solution gekennzeichnet. »


RGH
Salut,
j'ai Dein Programmausschnitt la fois sur cela Notwendige reduziert et zum vollständigen Programme erweitert:
CLS
ShowCursor 2
declare Ende%, LfdBild%
assign #1,$PROGDIR + "Timer.txt"
rewrite #1
@Set("Décimal",4)
declare S&, E&
SetTimer 2000

WhileNot Ende%

    Inc LfdBild%

    Si (%Key = 27)

        Ende% = 1

    D'autre

        Imprimer ".";
        S& =  &GetTickCount
        waitinput
        E& = &GetTickCount

    EndIf

    imprimer #1,"Durchlauf : " + @str$(LfdBild%) + " = " + @Str$((E& - S&) / 1000) + "Sekunden"'***

Endwhile

KillTimer
close #1
ShowCursor 1
FIN

qui Minuteur versieht unbeirrt seinen Dienst. aussi pour sur 400 Durchläufen bleibt il chez seinen 2 Sekunden! cela Problem muss wohl dans den anderen Programmteilen de Dir liegen, qui je oui pas vorliegen et daher en Aufruf entfernt habe.

Aussi reicht es dans diesem Beispiel, den Minuteur einmal außerhalb qui Boucle trop mettons et anschließend wieder trop entfernen (siehe Listing). qui Minuteur fonctionne so longtemps, jusqu'à il par une erneuten SetTimer-Befehl ersetzt wird ou bien avec KillTimer gelöscht wird. (un SetTimer-Befehl contient De toute façon une KillTimer-Befehl.)

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
23.11.2010  
 




RGH
E.T. (09.11.10)

Werd's jetz la fois avec einem "Killtimer"  dans qui Boucle essayer...


cela sollte dans qui acte cela Problem lösen:

qui Nombre de möglichen Minuteur im System ist begrenzt et chaque SetTimer-Befehl erzeugst Du une neuen Minuteur. Dein KillTimer steht mais außerhalb qui äußeren Boucle, so dass es dedans qui Boucle nie aufgerufen wird.

Pour einem SetTimer muss un KillTimer aufgerufen volonté, bevor un nouveau SetTimer aufgerufen wird!

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
09.11.2010  
 



RGH (09.11.10)

E.T. (09.11.10)

Werd's jetz la fois avec einem "Killtimer"  dans qui Boucle essayer...


cela sollte dans qui acte cela Problem lösen:


ensuite ist es systemisch gesehen un XProfan-Bug.
 
09.11.2010  
 




RGH
iF (09.11.10)

ensuite ist es mais un XProfan-Bug... zumindest systemisch gesehen.


Wohl à peine: avec SetTimer wird un Minuteur erzeugt. cela fait on dans qui règle außerhalb qui Ereignis-Boucle, qui z.B. aussi cela Minuteur-Ereignis abfragt. Pour Beendigung qui Boucle muss qui Minuteur naturellement wieder "entsorgt" volonté. cela geschieht im Programme mais pas.
Im Beispiel est sich à Ereignis-Boucle encore une weitere Boucle. Pour cette äußeren Boucle steht seulement cela KillTimer. Solange cela Programme dans qui äußeren Boucle ist, wird chez chaque Aufruf un Minuteur erzeugt, mais aucun entfernt. seulement pour qui äußeren Boucle wird qui zuletzt erzeugte Minuteur entfernt. cela KillTimer steht définitif pour dem falschen Endwhile!

une autre l'affaire ist cela (encore undokumentierte) WaitInput N%. ici sollte XProfan cette interne erzeugten Minuteur naturellement wider au plus tard beim prochain WaitInput N% wieder entfernen. là muss je encore la fois regarder ...

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
09.11.2010  
 



Hm non nous écrivons aneinander vorbei, je plapper aujourd'hui soir la fois pourquoi es un Bug ist.
 
09.11.2010  
 



RGH (09.11.10)

iF (09.11.10)

ensuite ist es mais un XProfan-Bug... zumindest systemisch gesehen.


Wohl à peine: avec SetTimer wird un Minuteur erzeugt.


qui Aider en supplément sagt es oui bereits: "Mit SetTimer wird un Zeitgeber eingestellt" et "Es ist durchaus statthaft, den Zeitgeber avec einem erneuten SetTimer récente einzustellen.".

cela une ist arrêt API et l'autre XProfan et E.T. gings pas à API - mais aussi qui API... "existing timer, that timer veux être replaced".

un Bug ist es mais toutefois plutôt c'est pourquoi, là on aucun Timerhandles erhält et donc pas en sortir muss, sich um solche kümmern trop doit - besonders si le Aider aussi de 1 per SetTimer einstellbaren Zeitgeber spricht.

optimal wäre es doch si SetTimer sur sich selbst aufpasst et (ausschließlich-) interne verwendete Handles aussi selbst behandelt.
 
09.11.2010  
 




E.T.
Jo, IF. So habe je ca aussi aus qui Aider interpretiert. si man's weis, isses oui bien (ou bien aussi pas ).
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
10.11.2010  
 




E.T.
je dois pour Rückfragen malheureusement cet Thema nochmal hervorkramen:
après que je (comment Roland oui aussi aussagte) cela Killtimer  dans qui "richtige" Tandis que-Boucle emballé habe, erreichten mich aujourd'hui une Mail, "warum car qui SlideShow toujours anfängt trop rennen..."
(pas plus so grave, mais dem "außenstehendem Betrachter" entgeht naturellement nix).

Bien sûr juste probiert, Boucle umgebaut (alles avec '***), avec cela qui Zeiten vom SetTimer  es zum "auslösen" aufgezeichnet volonté:
KompilierenMarqueSéparation
....
ShowCursor 0
Clear Ende%, LfdBild%
assign #1,$ProgDir + "Timer.txt"'***
rewrite #1'***
@Set("Decimals",4)'***
declare S&, E&'***

WhileNot Ende%

    Inc LfdBild%

    If (%Key = 27) OR (%GetCount+1 = 0)

        Ende% = 1

    ElseIf (%GetCount + 1) > 0

        Pic_Laden
        Einblenden(@Rnd(5))
        Text
        SetTimer ShowTime%
        S& = GetTickCount
        waitinput'ShowTime%
        E& = GetTickCount

        If @IsKey(19)

            Pause

        EndIF

        KillTimer
        Ausblenden(@Rnd(5))
        @DeleteString(0,PicNr%)

    EndIf

    print #1,"Durchlauf : " + @str$(LfdBild%) + " = " + @Str$((E& - S&) / 1000) + "Sekunden"'***

EndWhile

close #1'***
ursor 1
....

maintenant wird oui m.M. pour qui Minuteur De toute façon wieder réglé "gekillt", bevor un neuer gesetzt wird. qui (mitgeschriebene) Dossier brachte wirklich folgendes zum Vorschein:

Minuteur-Mitschnitt

Durchlauf : 1 = 2.0000Sekunden
Durchlauf : 2 = 2.0000Sekunden
Durchlauf : 3 = 2.0310Sekunden
...
Durchlauf : 191 = 2.0000Sekunden
Durchlauf : 192 = 2.0000Sekunden
Durchlauf : 193 = 0.7650Sekunden
Durchlauf : 194 = 0.9220Sekunden
Durchlauf : 195 = 0.9220Sekunden
Durchlauf : 196 = 0.8910Sekunden
Durchlauf : 197 = 0.9370Sekunden


comment on voyons peux, ist ab Durchlauf 193 soudain une völlig autre Anzeige-Zeit (ShowTime% = Minuteur-Zeit) trop vermerken. Bildschirmschoner & Monitor-Abschalt-Zeit J'ai eu vorsorglich alles deaktiviert (pouvoir mon Prog sowieso, mais sûrement ist sûrement...).

Ist eh bien qui Minuteur "Wirr " ou bien je ou bien XProfan ???
ou bien quoi pourrait sonst encore cela waitinput  durchbrechen et quelque chose comme auslösen ??
Es était aussi ne...aucune d'autre Prog am courir, welches z.B. un wm_paint dans mon Programme veranlasst avons pourrait...

Irgendwie scheind qui Minuteur "immer encore aus qui Reihe" trop courir...

[OFFTOPIC]Gibts car trop waitinput n  déjà quoi nouveau ??[/OFFTOPIC]
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
23.11.2010  
 




RGH
Salut,
j'ai Dein Programmausschnitt la fois sur cela Notwendige reduziert et zum vollständigen Programme erweitert:
CLS
ShowCursor 2
declare Ende%, LfdBild%
assign #1,$PROGDIR + "Timer.txt"
rewrite #1
@Set("Décimal",4)
declare S&, E&
SetTimer 2000

WhileNot Ende%

    Inc LfdBild%

    Si (%Key = 27)

        Ende% = 1

    D'autre

        Imprimer ".";
        S& =  &GetTickCount
        waitinput
        E& = &GetTickCount

    EndIf

    imprimer #1,"Durchlauf : " + @str$(LfdBild%) + " = " + @Str$((E& - S&) / 1000) + "Sekunden"'***

Endwhile

KillTimer
close #1
ShowCursor 1
FIN

qui Minuteur versieht unbeirrt seinen Dienst. aussi pour sur 400 Durchläufen bleibt il chez seinen 2 Sekunden! cela Problem muss wohl dans den anderen Programmteilen de Dir liegen, qui je oui pas vorliegen et daher en Aufruf entfernt habe.

Aussi reicht es dans diesem Beispiel, den Minuteur einmal außerhalb qui Boucle trop mettons et anschließend wieder trop entfernen (siehe Listing). qui Minuteur fonctionne so longtemps, jusqu'à il par une erneuten SetTimer-Befehl ersetzt wird ou bien avec KillTimer gelöscht wird. (un SetTimer-Befehl contient De toute façon une KillTimer-Befehl.)

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
23.11.2010  
 




RGH
... et qui variante avec SetTimer n& fonctionne unbeirrt aussi encore pour sur 800 Durchläufen:
KompilierenMarqueSéparation
CLS
ShowCursor 2
declare Ende%, LfdBild%
assign #1,$ProgDir + "Timer.txt"
rewrite #1
@Set("Decimals",4)
declare S&, E&

WhileNot Ende%

    Inc LfdBild%

    If (%Key = 27)

        Ende% = 1

    Else

        Print ".";
        S& =  &GetTickCount
        waitinput 2000
        E& = &GetTickCount

    EndIf

    print #1,"Durchlauf : " + @str$(LfdBild%) + " = " + @Str$((E& - S&) / 1000) + "Sekunden"'***

EndWhile

close #1
ShowCursor 1
FIN

Um sur Votre Frage pour qui Verwirrtheit quelque chose einzugrenzen: Weder Windows encore XProfan sembler ici wirr trop son.

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
23.11.2010  
 




E.T.
merci, Roland, cela du getestet la hâte.
Hab maintenant la fois mon "Log-Datei" dahingehend erweitert, cela aussi qui Message, quelle cela waitinput zum sortir de veranlasst, aufgezeichnet wird:

Log-Dossier

Durchlauf : 191 = 2.0150Sekunden
>> Message: 275 | la fenêtre: 2294598 | wParam: 1 | lParam: 0
Durchlauf : 192 = 2.0160Sekunden
>> Message: 275 | la fenêtre: 2294598 | wParam: 1 | lParam: 0
Durchlauf : 193 = 0.3750Sekunden
>> Message: 273 | la fenêtre: 2294598 | wParam: 61808 | lParam: 0
Durchlauf : 194 = 0.8900Sekunden
>> Message: 273 | la fenêtre: 2294598 | wParam: 61808 | lParam: 0
Durchlauf : 195 = 0.8440Sekunden
>> Message: 273 | la fenêtre: 2294598 | wParam: 61808 | lParam: 0


qui verwirrende  Message ist 273 (pas 275, alors pas qui Minuteur), gesendet à cela Hauptfenster.
malheureusement peux je im Moment pas chercher, quoi cet Message bedeutet, peux mir la fois vite quelqu'un sur qui Sprünge aider ??

merci...
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
24.11.2010  
 



Tz! Konstantinopel: [...] 

273 = WM_COMMAND [...] 
 
24.11.2010  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

18.800 Views

Untitledvor 0 min.
Erfurt27.02.2022
RudiB.28.12.2021
E.T.06.11.2014
Klaus Ernst22.09.2014
plus...

Themeninformationen

cet Thema hat 4 participant:

E.T. (9x)
iF (9x)
RGH (4x)
unbekannt (2x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie