C# Windows独立应用程序在移动到后台时停止自动刷新

C# Windows独立应用程序在移动到后台时停止自动刷新,c#,.net,windows-applications,C#,.net,Windows Applications,我有一个windows独立应用程序,可以根据特定的用户定义的时间间隔自动刷新。一切正常,只有当应用程序在后台并且我在桌面上打开了其他东西时,应用程序才会停止自动刷新 我用一个时间来刷新。这是代码 Global.DateTime值将获取以前刷新的值 Global.DateTime=Global.DateTime; double Minutes=Convert.ToDouble(Global.dictionary[“WebserviceIntervalMins”].ToString());DateT

我有一个windows独立应用程序,可以根据特定的用户定义的时间间隔自动刷新。一切正常,只有当应用程序在后台并且我在桌面上打开了其他东西时,应用程序才会停止自动刷新

我用一个时间来刷新。这是代码

Global.DateTime值将获取以前刷新的值

Global.DateTime=Global.DateTime;
double Minutes=Convert.ToDouble(Global.dictionary[“WebserviceIntervalMins”].ToString());DateTime refreshDate=Global.DateTime.AddMinutes(分钟);
lblRefresh.Text=refreshDate.ToString();
公共void InitTimer()
{
int interv=Convert.ToInt32(Global.dictionary[“WebserviceIntervalMins”].ToString())*60000;//从配置文件获取间隔时间,并将分钟转换为毫秒
timer1=new System.Windows.Forms.Timer();
timer1.Tick+=新事件处理程序(timer1\u Tick);
timer1.Interval=interv;//单位为毫秒
timer1.Start();
}

你能用这样的东西吗

    bool isRunning = true;
    Thread th = new Thread(delegate()
    {
        while(isRunning)
        {
            BeginInvoke((Action)delegate()
            {
                //do refresh
            });
            int Minutes = Convert.ToInt(Global.dictionary["WebserviceIntervalMins"].ToString());
            Thread.Sleep(Minutes * 60000);
        }
   });
   th.IsBackground = true;
   th.Start();

“自动刷新”是什么意思?你在用定时器吗?请显示一些代码。@Lucmorin先生是的,我正在使用刷新时间。这是代码。Global.DateTime值将获取以前刷新的值。Global.DateTime=Global.DateTime;double Minutes=Convert.ToDouble(Global.dictionary[“WebserviceIntervalMins”].ToString());DateTime refreshDate=Global.DateTime.AddMinutes(分钟);lblRefresh.Text=refreshDate.ToString();请使用任何相关代码更新您的原始问题。不要对此使用注释。@Lucmorin先生,好的。更新了查询。不幸的是,您的代码在这里没有什么帮助。这个代码什么时候调用?如果你希望别人帮助你,你需要提供更多的细节。这只是一个错误的建议,无限循环
线程。睡眠
几乎从来都不是正确的答案。@ScottChamberlain谁说无限?常识告诉我们,当需要时,isRunning应该被更改为false,例如在表单关闭之前。它已经足够无限了。没有理由使用睡眠线程来执行此操作。这正是创建计时器的目的。您能解释一下为什么称这个循环为无限循环吗?因为退出条件是明确定义的-!Isrunng?