每500毫秒循环一次,没有延迟

时间:2013-02-14 21:19:47

标签: c# loops lag milliseconds

如何在WinForms应用中执行此操作?我已经尝试使用System.Windows.Forms.Timer,但是当我最小化应用程序时,我无法再次最大化它。它滞后于应用程序。我正在使用.Interval属性为500。

编辑:代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            System.Windows.Forms.Timer Loop = new System.Windows.Forms.Timer();
            Loop.Interval = 500;
            Loop.Tick += new EventHandler(UpdateUI);
            Loop.Start();
        }

        void UpdateUI(object sender, EventArgs e)
        {
            //ADD TO LIST ON USER INTERFACE
        }
    }
}

1 个答案:

答案 0 :(得分:0)

Timer class指定Interval为毫秒。因此,您的值500表示间隔为半秒。改为指定50。

此外,您无法保证计时器每50毫秒正好点火一次。只有大约50毫秒的时间。

您应该保留对计时器对象的引用。

public partial class Form1 : Form
{
    Timer loop;

    public Form1()
    {
        InitializeComponent();
        this.loop = new System.Windows.Forms.Timer();
        loop.Interval = 50;
        loop.Tick += new EventHandler(UpdateUI);
        loop.Start();
    }

    void UpdateUI(object sender, EventArgs e)
    {
        //ADD TO LIST ON USER INTERFACE
    }
}