Re: WindowsForm Timer tappar tid
Postat: 25 november 2013, 15:20:00
Oj, tråden fick nytt liv helt plötsligt ser jag hehe. Jag gjorde helt enkelt så att jag baserade det hela på klockan, funkar fint för det jag vill göra.
För framtida arkeologer som snubblar över tråden. Semi-pseudo-kod:
Det kanske ser lite konstigt ut att jag fortfarande gör jobbet i en vanlig oexakt timer men det viktiga i det här fallet är att "foobar" uppdateras korrekt.
För framtida arkeologer som snubblar över tråden. Semi-pseudo-kod:
Kod: Markera allt
public partial class Form1 : Form
{
private System.Timers.Timer OneSecTimer = new System.Timers.Timer();
public Form1()
{
OneSecTimer.Interval = 1000;
OneSecTimer.Elapsed += updateTime;
OneSecTimer.AutoReset = false;
// Timern startas i en annan del av koden som inte är inkluderad här
}
private void updateTime(object sender, System.Timers.ElapsedEventArgs e)
{
foobar++;
OneSecTimer.Interval = 1000 - DateTime.Now.Millisecond;
OneSecTimer.Start();
}
// En windows forms timer som körs ungefär en gång per sekund
private void timer1sec_Tick(object sender, EventArgs e)
{
// Gör det riktiga jobbet här baserat på värdet av foobar
{
}