windows-runtime - 控制后台任务实例

标签 windows-runtime windows-phone-8.1 windows-store-apps synchronization windows-8.1-universal

有没有办法同步一个后台任务的多个实例?

我正在开发一个通用 Windows 8.1 商店项目。我有一个后台任务,用于接收原始通知并下载和更新一些数据(希望满足 CPU 配额和运行时间限制)。

当多个推送同时到达时,我想避免在 Windows Phone 上同时运行后台工作。也就是说,后台任务应该检查它的另一个实例是否正在运行并安静地退出。

我能想到的唯一方法是通过本地存储中的信号量文件...但是由于 WP 上的所有文件 IO 都是异步的,我不知道如何在没有竞争条件的情况下使其工作。

有什么想法吗?

最佳答案

有一些用于跨进程同步的对象,使用它们比使用文件发送信号要好得多。您可能会考虑使用 EventWaithHandleMutex具有全局同步的名称。它可以在多个进程(不仅仅是线程)之间工作。您可以找到此同步的一个很好的示例 at Alabhari's blog .

在您的情况下,如果设置了句柄,则意味着其他进程(如果正在执行工作)和当前进程可以返回。

关于等待句柄,您可以在this question找到更多信息。 .

关于windows-runtime - 控制后台任务实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34087958/

相关文章:

c# - "Windows.System.Launcher"不启动写字板

c# - 为什么这个等待让我永远等待?

xaml - 如何在 XAML 中为矩形笔画粗细设置动画?

c# - 使用 Visual Studio 2012 平板电脑模拟器模拟无网络

c++ - Windows Universal App 8.1 C++/自定义类属性

windows-runtime - 没有信箱的 Windows Phone 启动屏幕

uwp - UWP 应用程序是否需要 Windows App Store?

windows-runtime - 在 C++/CX 中实现内部接口(interface)的公共(public)引用类

c++ - C++/CX 中 ^ 变量的含义

windows-phone-8.1 - 在 Windows phone 8.1 中按下 Home 键时,如何防止 ContentDialog 关闭?