0

我需要大约每分钟发送一次服务器请求,以获取新产品列表(以防它通过网络更改)。

所以,我正在使用 DispatcherTimer

public static void Start()
    {
        if (timer != null) return;

        timer = new DispatcherTimer {Interval = TimeSpan.FromSeconds(0.1)};
        timer.Tick += Run;
        timer.Start();
    }

private static async void Run(object sender, EventArgs e)
    {
        timer.Interval = TimeSpan.FromSeconds(60); // TODO" add dynamic changes here
        timer.Stop();
        ** Do stuff
        timer.Start();
    }

但是,有时,我需要强制更新。运行是否正确

public static void ForceUpdate()
    {
        Run(null, null);
    }

编辑:我的意思是,如果Do stuff足够长,不会通过计时器第二次调用它吗?或者也许我应该用别的东西来做这种工作?

4

2 回答 2

0

编辑:插入一个应该存储上次更新时间的变量,并检查是否在某个时间间隔内完成了更新。

于 2013-09-06T08:45:12.850 回答
0

啊,嗯,很简单

        public static void ForceUpdate()
        {
            timer.Stop();
            timer.Interval = TimeSpan.FromMilliseconds(10);
            timer.Start();
        }
于 2013-09-06T11:25:25.750 回答