【发布时间】:2011-08-11 18:07:14
【问题描述】:
我正在创建一个具有前台应用程序(当然)以及 PeriodicTask 和 ResourceIntensiveTask 的应用程序。
如果用户在运行时自行启动应用程序,我需要一种方法来关闭计划任务。
我没有看到任何使用系统范围互斥锁的方法。理想情况下,当后台任务启动时,会分离出一个线程来侦听来自前台应用程序的信号,如果它收到此信号,它就可以干净地关闭后台任务。
除了轮询(比如特定文件的文件夹)之外,是否有人对我的前台应用程序如何在前台应用程序启动时向我的后台代理发出关闭信号有明确的建议?
我正朝着套接字方向前进,但这似乎有点矫枉过正。
背景: 我目前正在使用 IsolatedStorage 来存储我的数据(不是数据库)——最终我将转向使用数据库。
我的前台应用将本地数据与 Web 服务同步,并在从 Web 服务添加新项目时更新 UI。我使用一个文件来查找数据项,并在新项目同步时附加到该文件中。
我希望后台代理运行以在后台执行此同步,更新隔离存储中的文件,包括索引等。但是一旦我启动前台应用程序,我需要停止后台应用程序,以便前台和后台不会同时尝试更新相同的文件。
我只需要一个进程一次更新本地数据,我需要前台进程抢占后台进程。
【问题讨论】:
-
我会推动将您的代理设计为能够与应用程序同时运行。如果你有一个很好的例子,这意味着这是不可能的,那么我很想听听。
-
我添加了一些背景信息。本质上我不能让两个进程同时修改同一个文件,我希望前台进程抢占后台进程。
标签: windows-phone-7 mutex