Español
Foro

Temporizador-Problema

 
- Página 1 -



E.T.
Como sí hier:  [...]  no Reacción a verzeichnen war, möchte Yo el Thema otra vez aufgreifen. Yo hay bajo "Mit Settimer funktionierts..."  Nuevo, el lo con "Settimer" funktioniert.

Leider scheind el doch no así a ser !!!

Hab mich heut veces hingesetzt, y mein propio Prog veces otra vez getestet: y siehe como, irgendwann (así de 250 Durchläufen) se auch el Bucle ("Mit Settimer funktionierts..." ) siempre más rápido (y más rápido, y más rápido...).

Oder debería como una Bug en el XProfan ser ??

Werd's jetz veces con un "Killtimer"  en el Bucle probieren...
 
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  
 



« Dieser Contribución wurde como Solución gekennzeichnet. »


RGH
¡Hola,
Yo Su Programmausschnitt veces el Notwendige reduziert y para vollständigen Programa erweitert:
CLS
ShowCursor 2
declarar Ende%, LfdBild%
assign #1,$PROGDIR + "Timer.txt"
rewrite #1
@Conjunto("Decimals",4)
declarar S&, E&
SetTimer 2000

Sinestar encargado Ende%

    Inc LfdBild%

    If (%Key = 27)

        Ende% = 1

    Más

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

    EndIf

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

EndWhile

KillTimer
close #1
ShowCursor 1
FIN

Der Temporizador versieht unbeirrt seinen Dienst. Auch después de encima 400 Durchläufen restos él en seinen 2 Sekunden! Das Problema muss wohl en el otro Programmteilen de Usted mentira, el Yo sí no vorliegen y por lo tanto deren Aufruf lejos habe.

Außerdem reicht lo en diesem Ejemplo, el Temporizador una vez außerhalb el Bucle a conjunto y anschließend otra vez a entfernen (siehe Listing). Der Temporizador se ejecuta así largo, a él por una erneuten SetTimer-Befehl ersetzt se oder con KillTimer gelöscht se. (Ein SetTimer-Befehl enthält De todos modos una KillTimer-Befehl.)

Saludo
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 veces con un "Killtimer"  en el Bucle probieren...


Das debería en el Tat el problema lösen:

El Anzahl el möglichen Temporizador en el Sistema es begrenzt y cada SetTimer-Befehl erzeugst Usted una neuen Temporizador. Su KillTimer es aber außerhalb el äußeren Bucle, así dass lo innerhalb el Bucle nie aufgerufen se.

Nach una SetTimer muss una KillTimer aufgerufen voluntad, bevor una neues SetTimer aufgerufen se!

Saludo
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 veces con un "Killtimer"  en el Bucle probieren...


Das debería en el Tat el problema lösen:


Dann es systemisch gesehen una XProfan-Bug.
 
09.11.2010  
 




RGH
IF (09.11.10)

Dann es aber una XProfan-Bug... zumindest systemisch gesehen.


Wohl kaum: Mit SetTimer se una Temporizador producido. Das macht uno en el Regel außerhalb el Ereignis-Bucle, el z.B. auch el Temporizador-Ereignis abfragt. Nach Beendigung el Bucle muss el Temporizador natürlich otra vez "entsorgt" voluntad. Das geschieht en el Programa pero no.
Im Ejemplo befindet son el Ereignis-Bucle ni weitere Bucle. Nach dieser äußeren Bucle es sólo el KillTimer. Solange el Programa en el äußeren Bucle es, se cada Aufruf una Temporizador producido, aber keiner lejos. Erst después de el äußeren Bucle se el zuletzt erzeugte Temporizador lejos. Das KillTimer es definitiv después de el falschen EndWhile!

Otro Sache es el (todavía undokumentierte) WaitInput N%. Hier debería XProfan esta intern erzeugten Temporizador natürlich wider spätestens beim nächsten WaitInput N% otra vez entfernen. Como muss Todavía veces schauen ...

Saludo
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 nein wir escribir aneinander vorbei, Yo plapper heute Abend veces por qué lo una Bug es.
 
09.11.2010  
 



RGH (09.11.10)

IF (09.11.10)

Dann es aber una XProfan-Bug... zumindest systemisch gesehen.


Wohl kaum: Mit SetTimer se una Temporizador producido.


El Ayuda dazu sagt lo sí ya: "Mit SetTimer se una Zeitgeber eingestellt" y "Es es durchaus statthaft, el Zeitgeber con un erneuten SetTimer neu einzustellen.".

Das una es sólo API y el otro XProfan y E.T. gings no a API - aber auch el API... "existing timer, that timer voluntad be replaced".

Ein Bug es aber todavía más deshalb, como uno no Timerhandles erhält y por lo tanto no su ausgehen muss, son solche kümmern tener - besonders si la Ayuda auch de 1 por SetTimer einstellbaren Zeitgeber spricht.

Optimal wäre lo doch si SetTimer en se incluso aufpasst y (ausschließlich-) intern verwendete Handles auch incluso behandelt.
 
09.11.2010  
 




E.T.
Jo, IF. So Yo dies auch de el Ayuda interpretiert. Wenn man's weis, isses sí bien (oder auch no ).
 
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.
Yo muß después de Rückfragen desafortunadamente dieses Thema otra vez hervorkramen:
Nachdem Yo (como Roland en efecto aussagte) el Killtimer  en el "richtige" Mientras que-Bucle gepackt habe, erreichten mich heute una Mail, "warum porque el SlideShow siempre todavía anfängt a rennen..."
(No mehr así schlimm, aber el "außenstehendem Betrachter" entgeht natürlich nix).

Natürlich igual probiert, Bucle umgebaut (alles con '***), así el Veces vom SetTimer  bist para "auslösen" aufgezeichnet voluntad:
KompilierenMarcaSeparación
....
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
....

Jetzt se sí m.M. después de el Temporizador De todos modos otra vez ordentlich "gekillt", bevor una neuer gesetzt se. El (mitgeschriebene) Expediente brachte wirklich folgendes para Vorschein:

Temporizador-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


Como uno sehen kann, es de Durchlauf 193 plötzlich una völlig otro Anzeige-Tiempo (ShowTime% = Temporizador-Tiempo) a vermerken. Bildschirmschoner & Monitor-Abschalt-Tiempo Tuve vorsorglich alles deaktiviert (macht mein Prog sowieso, aber sicher es sicher...).

Ist nun el Temporizador "Wirr " oder Yo oder XProfan ???
Oder qué podría sonst todavía el waitinput  durchbrechen y algo como auslösen ??
Lo fue kein más Prog al laufen, welches z.B. una wm_paint en mi Programa veranlasst haben podría...

Irgendwie scheind el Temporizador "immer todavía de el Reihe" a laufen...

[OFFTOPIC]Gibts porque a waitinput n  ya qué neues ??[/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
¡Hola,
Yo Su Programmausschnitt veces el Notwendige reduziert y para vollständigen Programa erweitert:
CLS
ShowCursor 2
declarar Ende%, LfdBild%
assign #1,$PROGDIR + "Timer.txt"
rewrite #1
@Conjunto("Decimals",4)
declarar S&, E&
SetTimer 2000

Sinestar encargado Ende%

    Inc LfdBild%

    If (%Key = 27)

        Ende% = 1

    Más

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

    EndIf

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

EndWhile

KillTimer
close #1
ShowCursor 1
FIN

Der Temporizador versieht unbeirrt seinen Dienst. Auch después de encima 400 Durchläufen restos él en seinen 2 Sekunden! Das Problema muss wohl en el otro Programmteilen de Usted mentira, el Yo sí no vorliegen y por lo tanto deren Aufruf lejos habe.

Außerdem reicht lo en diesem Ejemplo, el Temporizador una vez außerhalb el Bucle a conjunto y anschließend otra vez a entfernen (siehe Listing). Der Temporizador se ejecuta así largo, a él por una erneuten SetTimer-Befehl ersetzt se oder con KillTimer gelöscht se. (Ein SetTimer-Befehl enthält De todos modos una KillTimer-Befehl.)

Saludo
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
... y el Variante con SetTimer n& se ejecuta unbeirrt auch todavía después de encima 800 Durchläufen:
KompilierenMarcaSeparación
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 en Su Cuestión después de el Verwirrtheit algo einzugrenzen: Weder Windows todavía XProfan scheinen hier wirr a ser.

Saludo
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.
Gracias, Roland, el du getestet hast.
Hab ahora veces mi "Log-Datei" dahingehend erweitert, el auch el Message, welche el waitinput para verlassen veranlasst, aufgezeichnet se:

Log-Expediente

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


El verwirrende  Message es 273 (no 275, also no Temporizador), gesendet a la ventana principal.
Leider kann Yo en el Moment no nachschauen, qué esta Message bedeutet, kann me de tiempo rápidamente alguien en el Sprünge helfen ??

Gracias...
 
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  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

18.744 Views

Untitledvor 0 min.
Erfurt27.02.2022
RudiB.28.12.2021
E.T.06.11.2014
Klaus Ernst22.09.2014
Más...

Themeninformationen

Dieses Thema ha 4 subscriber:

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


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie