Timer bei Win 2k/XP um Faktor 10 zu langsam



  • Ich habe ein Programm miteinem Counter. Dieser läuft unter Win ME wie er sollte. Jedoch unter Win 2k/XP ist er um den Faktor 10 langsamer. Woran kann das liegen und was kann ich dagegen machen????

    mfg
    Fink Christoph



  • Gib mal etwas Code her sonst wird schwierig.
    Die Timerauflösung ist unter >= WINNT 4 anders.



  • UpdateData(TRUE);
    
    m_iCount = 0;
    m_sCount.Format("%d", m_iCount);
    
    UpdateData(FALSE);
    
    SetTimer(ID_COUNT_TIMER, 1, NULL); //Timer mit 1ms Intervall starten
    ...
    KillTimer(ID_COUNT_TIMER);
    
    m_dZeitS = m_dZeitMS / 1000; //Hier Wandle ich die Zeit von ms in Sec. um
    


  • hi

    müsste es nicht S = MS * 1000; sein? 😕



  • Nein 1000ms sind ja 1s und nicht 1000s eine ms.



  • In >= WINNT ist gibt es nur IMHO alle 50 ms einen Timer. Der Wert kann auch etwas anders sein.(Keine Zeit jetzt nachzusehen ist aber für die Antwort nicht wichtig)
    Somit hilft es dir nichts alle 1 ms einen Timer auszulösen da es nicht alle 1 ms ein Timerereigniss ausgelöst wird. Insbesonders wenn das BS ausgelastet ist kann auch nicht garantiert werden das alle 50 ms ein Timer ausgelöst wird.
    Wenn du so kurze Auflösungen brauchts dann nimm besser eine schleife mit Sleep auch wenn Timer einfacher sind.

    Ich weiß allerdings nicht wie es in WinME ist. Kann mir aber nicht vorstellen das die Auflösung kleiner ist.
    Such mal in dieser Richtung.


Anmelden zum Antworten