delay erzeugen



  • Hallo
    Gleich vorweg, ich bin Anfänger.
    Ich will in meinem Programmablauf in unregelmäßigen Abstanden einen delay von etwa 2ms erzeugen. 4ms darf ich dabei nicht überschreiten. Mein erster Gedanke war einen CWnd-Timer zu verwenden aber das scheint recht umständlich und vor allem sehr ungenau.
    Ich hab keine Idee mehr.
    Danke im vorraus.



  • Sleep?
    QueryPerformanceTimer?



  • Ich versuche mich im nichtverwaltetem Code. Da hab ich kein Sleep gefunden.
    QueryPerformanceTimer hab ich gar nicht gefunden.
    Mir ist aber selbst was eingefallen:

    // Funktion erzeugt einen Delay von 2ms
    void CPICPICDlg::m_Delay(void)
    {
    // Zeit in ms holen seit das System gestartet wurde
    DWORD dwStart = GetTickCount();

    // Warten bis 2ms vorbei sind
    for( ;(GetTickCount() - dwStart) <= 2 ;);

    Hab ich zwar Systemauslastung, aber das hab ich sowieso für ein paar Sekunden.
    Wie genau das ist stell ich morgen fest.
    Trotzdem DANKE


Anmelden zum Antworten