Как сохранить настройки в IsolatedStorage, когда активен экземпляр BackgroundAudioPlayer?

У меня есть два проекта в моем решении. Позволять'скажем, проект A и проект B.

Проект А

Это's основной проект и имеет настройки. У меня есть флажок, чтобы дать пользователю возможность "Повторение" дорожка (ы). Этот проект может также получить доступ к ПРОЕКТУ B 'публичные случаи.

Проект Б

Это's BackgroundAudioAgent и имеет его 'собственные настройки. Этот проект неУ него нет доступа к настройкам ПРОЕКТА А. Поэтому в ПРОЕКТЕ A мне нужно получить доступ к настройкам ПРОЕКТА B и сохранить его там. Так что, когда тоПовторение" включен, агент возобновляет воспроизведение.

ПРОБЛЕМА

Я не могу сохранить настройки (другими словами, настройки сохраняются, но это не влияет), когда BackgroundAudioPlayer 'экземпляр работает. Я всегда должен закрывать экземпляр, и когда я это делаю, настройки могут быть изменены.

ВОПРОС

Какой самый эффективный способ сделать то, что я пытаюсь сделать?

Как сохранить настройки в IsolatedStorage, не закрывая BackgroundAudioPlayer 'экземпляр? (как я нене хочу прерывать любую воспроизводимую дорожку).

КОД: Что мне нужно сделать, чтобы сохранить настройки.

    public bool SettingAudioRepeat
    {
        get
        {
            return GetValueOrDefault(SettingAudioRepeatKeyName, SettingAudioRepeatDefault);
        }
        set
        {
            if (AddOrUpdateValue(SettingAudioRepeatKeyName, value))
            {
                bool resumePlay = false;

                try
                {
                    if (BackgroundAudioPlayer.Instance.PlayerState != PlayState.Shutdown)
                    {

                        BackgroundAudioPlayer.Instance.Close();
                        resumePlay = true;
                    }
                }
                catch { }
                TaskEx.Delay(300);
                IQR_Settings iqrSet = new IQR_Settings();
                iqrSet.SettingAudioRepeat = value;
                iqrSet.Save(); //Saving the settings for Project B

                Save(); //Saving the settings for Project A

                try
                {
                    if (resumePlay)
                        BackgroundAudioPlayer.Instance.Play(); //It starts all from scracth

                }
                catch { }

            }
        }


    public T GetValueOrDefault(string Key, T defaultValue)
    {

        T value;

        // If the key exists, retrieve the value.
        if (settings.Contains(Key))
        {
            value = (T)settings[Key];
        }
        // Otherwise, use the default value.
        else
        {
            value = defaultValue;
        }
        return value;
    }

КОД: Что я просто хочу сделать.

    public bool SettingAudioRepeat
    {
        get
        {
            return GetValueOrDefault(SettingAudioRepeatKeyName, SettingAudioRepeatDefault);
        }
        set
        {
            if (AddOrUpdateValue(SettingAudioRepeatKeyName, value))
            {

                IQR_Settings iqrSet = new IQR_Settings();
                iqrSet.SettingAudioRepeat = value;
                iqrSet.Save(); //Saving the settings for Project B

                Save(); //Saving the settings for Project A


            }
        }

Ответы на вопрос(1)

Ваш ответ на вопрос