C# Timer -> Tick mit 1ms funktioniert nicht

Gast #4250808
Lesenswert?
• ▲
▼
Serus,

ich bin ziemlich neu bei C# und daher habe ich vielleicht einfach ein 
Verständnisproblem.

Ich habe einen Timer definiert mit dem Interval 1ms:
1
// 
2
            // timer1
3
            // 
4
            this.timer1.Enabled = true;
5
            this.timer1.Interval = 1;
6
            //


Also lasse ich jede Millisekunden über Tick einen Wert hochzählen.
1
void t1_Tick(object sender, EventArgs e)
2
        {
3
            if (serialPort.IsOpen)
4
            {
5
                //How many rows exist
6
                int nCANMSG_send = dataGridView_send.Rows.Count;
7
                while (nCANMSG_send > 0)
8
                {
9
                    nCANMSG_send--;
10
                    dataGridView_send.Rows[nCANMSG_send].Cells["amount_send"].Value = Convert.ToInt32(dataGridView_send.Rows[nCANMSG_send].Cells["amount_send"].Value.ToString()) + 1;
11
                }        
12
            }
13
        }

Wenn ich sehe wie das hochgezählt wird, sieht direkt, dass es nie 1ms 
ist. Daher frage ich mich ob der Timer für 1ms überhaupt funktioniert 
und wie genau er ist? Oder mache ich was falsch?

Gruss Stefan
Persönliche Seite #4250820
Lesenswert?
• ▲
▼
Timer arbeiten unter Windows normalerweise mit gröberen Auflösungen. Die 
Granularität lässt sich aber mit den Multimedia-Timer-Funktionen aus der 
Win32-API verändern, so daß die Minimalauflösung 1 msec beträgt.

Das sind timeBeginPeriod und timeEndPeriod.

https://msdn.microsoft.com/de-de/library/windows/desktop/dd757624%28v=vs.85%29.aspx
https://msdn.microsoft.com/de-de/library/windows/desktop/dd757626%28v=vs.85%29.aspx

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.