Forum: PC-Programmierung C# Timer -> Tick mit 1ms funktioniert nicht


von Stefan (Gast)


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

von Rufus Τ. F. (rufus) Benutzerseite


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

von Stefan (Gast)


Lesenswert?

dake für die schnelle Antwort Rufus.

ich verstehe gar nicht wie ich das einsetzen kann? Ich bin wie gesagt 
komplet neu bei C#. Hast du vielleicht ein Beispiel?

Gruss Stefan

von Hmmm (Gast)


Lesenswert?


von Stefan (Gast)


Lesenswert?

Servus, funkttioniert spitze und ist einfach zu handhaben

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.