[C#] Timer \ Stoppuhr

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Mr.Smoke, 13. Dezember 2007 .

Schlagworte:
  1. 13. Dezember 2007
    Hi....
    Wie mache ich in C# am besten ne "Stoppuhr"...
    ICh stell mir das so vor am Anfang von der schleife starte sie und am ende stoppt sie!
    Das ich sehen kann wie lang es gebraucht hat .....

    BW für hilfreiche Antwort...
     
  2. 13. Dezember 2007
    AW: [C#] Timer \ Stoppuhr

    Hi,

    es gibt in .NET eine Timer-Klasse, mit der lässt sich sicherlich was Anfangen. Schau einfach mal danach in deiner Toolbox

    Gruß
    meckes
     
  3. 13. Dezember 2007
    AW: [C#] Timer \ Stoppuhr

    Hoi,

    hab in einem Projekt von mir auch mal so eine Timer-Klasse gebraucht.
    Das ist sie:
    Frubar Paste

    Verwenden is ganz einfach:
    Code:
    HiPerfTimer tmr = new HiPerfTimer();
    tmr.Start();
    // Irgendwas langes machen
    tmr.Stop();
    Console.WriteLine("Dauer: {0:#####} msec", tmr.Duration * 1000);
    
    Wie man sieht, gibt die Klasse Sekunden zurück, du musst also noch *1000 rechnen für ms.


    edit: Das Timer-Objekt von der Toolbox kann man glaub ich nur brauchen, wnen man ne bestimmte Aktion in bestimmten Intervallen wiederholen möchte.
     
  4. 13. Dezember 2007
    AW: [C#] Timer \ Stoppuhr

    Wie beispielsweise das Programmieren einer "Stoppuhr":

    Timer, bspw. auf Interval 50 erstellen, und bei jedem Tick eine Int-/Longvar um 50 erhöhen. Am Ende hast Milisekunden.

    (Ich schreibe das, da ich die zeitliche Auflösung des Timers nicht allzu schön finde... 1sec? sehr genau ^^)

    Ansonsten 2 Timestamps (Datetime/Date?) "Start" und "Ende" erstellen, am Anfang Start = Now setzen, am Ende Ende = Now, und die Differenz ausrechnen.

    Einer der beiden Ansätze müsste auf jeden Fall umsetzbar sein

    Greetz Roog
     
  5. 13. Dezember 2007
    AW: [C#] Timer \ Stoppuhr

    Naja, die Anzahl der Sekunden die da rauskommt is ja ein double, d.h. mit Nachkommastellen.
    D.h. wenn die Sekundenanzahl 1,234 war, dann kriegst du auch 1234 ms

    Das mit DateTime ist jedoch auch ne gute Möglichkeit. Da gibts glaub ich .Ticks, mit der du ms kriegst.

    edit: Nen Timer+Variable erhöhen halte ich für ne schlechte Idee, da man da wieder ne zusätzliche Event-Funktion etc. braucht, die man eigentlich vermeiden könnte (mit einer der beiden oberen Möglichkeiten)
     
  6. 14. Dezember 2007
    AW: [C#] Timer \ Stoppuhr

    Hast recht, ausserdem funktioniert der Timer a) nur ab Zahlen von rund 25ms, und b) frisst er bei solchen Abständen mit den Events/Handlern etc so viel ressourcen, dass es sich ned lohnt. Und das mit den Sekunden hab ich leider missverstanden.... dachte das Ding produziert "nur" Sekunden

    Greetz Roog
     
  7. 15. Dezember 2007
    AW: [C#] Timer \ Stoppuhr

    hi!
    kombiniere doch die intervall-methode mit der systemzeit.

    wie Roogley schon sagte, holst du dir den TimeStamp wann der Timer abgelaufen ist(bei 5 sekunden: Systemzeit + 5000) und dann benutzt du ne schleife:

    Pseudocode:
    Code:
     
    endtime=time()+5000;
    solange time()<endTime{
     warte(25ms);
    }
    
    ALARM();
    so bekommst du auf jeden fall nach 5 sekunden(+-25ms) deinen Alarm.

    mfg - Idefix!
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.