2012-10-08 87 views
1

我正在使用WP7上的后台音频播放器代理构建音乐播放器。我想启用UI部分和代理部分之间的通信。许多guides建议使用隔离储存,但我认为这不是一个好办法WP7进程间通信

有什么办法,使进程间通信在Windows Phone 7的

回答

1

在Windows Phone 8 SDK中,我们现在可以使用系统范围的Mutex对象。

它似乎前台应用程序和后台代理运行在手机上作为单独的进程。所以即使你实例化同一个类,每个进程都有不同的实例

到目前为止,我所知道的最佳解决方案是让每个进程将“共享”数据结构映射到独立存储文件,然后使用全系统互斥锁(名为Mutex)阻止一个进程读取文件其他人正在写它。如果一个进程始终是数据结构的编写者,那么它就会更简单,所以它不必担心异步地合并其他进程所做的更改。如果每个进程都必须是数据结构的某个部分的写入者,那么通常情况下,请考虑将这些部分分离为单独的数据结构并分离独立存储文件,其中一个进程读取一个文件并写入另一个文件,另一个进程写入第一个并阅读第二篇。 (所有读取和互斥内写入。使用相同互斥两个文件和两个进程,以避免死锁。)

+0

感谢可用,我以前也知道这一点,但我认为它只是解决方法。我需要真正的进程间通信 – onmyway133

+1

您需要比BackgroundAudioPlayer提供的更多吗?这允许前台发送fastforward,改变轨道等命令给在后台运行的音频播放器。它非常专用于媒体播放。如果你需要比这更一般的东西,我可以建议的唯一的其他事情是TCP套接字,但是你需要Socket.Listen(),它只在WP8中可用(你的问题特别提到了WP7)。 – BobHy

0

试试这个:

phoneApplicationPage.State

+0

的PhoneApplicationPage是不是在代理 – onmyway133