在c#中更新静态变量

时间:2015-08-06 02:38:41

标签: c# windows-phone-8 static-variables

我正在开发一个用c#播放Windows Phone 8背景音频的程序。 我的解决方案包含2个项目:主项目和AudioPlaybackAgent项目。

  1. 在AudioPlaybackAgent中,我添加了静态变量self.line.removeFromParent() 获取并设置在文件" AudioPlayer.cs":

    currentTrackNumber
  2. 在主项目中,我尝试更新文件中的静态变量 " MainPage.xaml.cs中"添加:

    namespace AudioPlaybackAgent
    {
        public class AudioPlayer : AudioPlayerAgent
        {
            static int currentTrackNumber = 0;
    
            ...
            ...
    
            public static int CurrentTrackNumber
            {
                get { return currentTrackNumber; }
                set { currentTrackNumber = value; }
            }
    
            ...
            ...
    
        }
    }
    
  3. 但变量并没有改变。为什么呢?

1 个答案:

答案 0 :(得分:2)

项目在不同的进程中运行,因此它们具有静态的单独副本。您通常可以通过覆盖的代理方法获取跟踪更改等基本信息。如果您需要更多信息(例如任意跳转到播放列表),那么您可以使用文件和IPC机制(如Win32事件)发信号 - 请参阅this post and associated sample

通用Windows应用程序的效果会更好,因为可以直接通过BackgroundMediaPlayer class来回发送消息。