C# 每分钟运行一次Windows应用商店应用程序后台任务?
我正在编写windows应用商店应用程序,该应用程序需要根据用户的选择,每1分钟、2分钟或5分钟同步一次数据(这是客户端的必备要求)。据我所知,在15分钟内运行后台任务是不可能的。有没有办法实施?这适用于针对Windows 8.1的基于选项卡的应用程序 如果我每分钟手动编写一个线程来运行同步,那么线程类和功能应该放在哪里,这样当用户切换页面时它就不会停止C# 每分钟运行一次Windows应用商店应用程序后台任务?,c#,windows-store-apps,task,backgroundworker,C#,Windows Store Apps,Task,Backgroundworker,我正在编写windows应用商店应用程序,该应用程序需要根据用户的选择,每1分钟、2分钟或5分钟同步一次数据(这是客户端的必备要求)。据我所知,在15分钟内运行后台任务是不可能的。有没有办法实施?这适用于针对Windows 8.1的基于选项卡的应用程序 如果我每分钟手动编写一个线程来运行同步,那么线程类和功能应该放在哪里,这样当用户切换页面时它就不会停止 我知道这个问题是重复的。但如果有人找到了方法或解决办法,请再次询问 否。在Windows Phone中,您无法控制运行后台任务。若用户实际上并
我知道这个问题是重复的。但如果有人找到了方法或解决办法,请再次询问 否。在Windows Phone中,您无法控制运行后台任务。若用户实际上并没有和系统时间交互,后台任务甚至可能被操作系统关闭
一种方法是发送推送通知,但这在所有情况下都不可行。我在Windows Phone中使用该类使用异步套接字每分钟从服务器刷新一个项目列表,也许您可以根据需要修改该类(也许您还想存储一些数据)
谢谢这适用于针对Windows 8.1的基于选项卡的应用程序。
public class BackgroundWorker : IDisposable
{
private static readonly BackgroundWorker SingleWorker = new BackgroundWorker();
public static BackgroundWorker GetInstance()
{
return SingleWorker;
}
private readonly Thread _worker;
private bool _disposed = false;
private readonly AutoResetEvent _are = new AutoResetEvent(false); //can't remeber if it is true or false
private BackgroundWorker()
{
_worker = new Thread(HandleWorker);
_worker.Start();
}
private void HandleWorker()
{
while (true)
{
_are.Reset();
//Check if there is work to be done
//Do Work
_are.Set();
//Add a wait here Like wait for 2 minutes before you continue
}
}
public void WaitForCompletion()
{
if (_disposed)
throw new ObjectDisposedException(this.GetType().Name,"Object cannot be accessed when disposed");
_are.WaitOne();
}
public void Dispose()
{
_disposed = true;
_worker.Abort(0x0);
_are.Set();
}
}