Доступ к IsolatedStorageSettings из backgroundAgent и основного приложения - как обеспечить высвобождение ресурсов bgAgent перед продолжением - PullRequest
1 голос
/ 09 августа 2011

Я использую фоновый агент (SchedulerTaskAgent), который обновляет некоторые ключи в IsolatedStorageSettings моего приложения. Все хорошо до здесь.

Когда мое приложение запускается, оно сначала удаляет bgagent.

В одном случае мое основное приложение запускается во время работы bgagent, поэтому, когда мое основное приложение удаляет bgagent, а затем пытается получить дескриптор для IsolatedStorageSettings. После этого есть 3 сценария: я) ручка возвращается и все в порядке II) дескриптор возвращается, но в нем нет ключей-значений, как будто ничего нет (но есть данные) iii) исключение, потому что оно все еще используется другим потоком

Я могу иметь дело с вариантами 1 и 3, но не со вторым. Кто-нибудь знает, почему это происходит? Когда я звоню. Удалите моего агента, я думаю, что потребуется некоторое время, чтобы отменить его и удалить.

Как я могу убедиться, что мое приложение начинает свою работу после остановки bgagent и полного освобождения ресурсов?

Thanx

Ответы [ 2 ]

1 голос
/ 09 августа 2011

Вы не можете.

Я слышал, что по этой причине не рекомендуется писать в IsolatedStorageSettings из backgroundAgents.

Если вам действительно необходимо связаться с приложением из фонового агента, я бы порекомендовал записать в отдельный файл в IsolatedStorage, из которого приложение только когда-либо читает. Обязательно заблокируйте файл при чтении и записи соответствующим образом.

0 голосов
/ 10 августа 2011

Спасибо Мэтту, это один из подходов, но я нашел лучший подход здесь http://forums.create.msdn.com/forums/p/86455/519826.aspx который предлагает использовать названный Mutex.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...