Можем ли мы вызвать код файла MainPage.xaml.cs из ScheduledAgent.cs при запуске метода OnInvoke?

Я использую PeriodicTask, и, конечно же, он запускается каждые 30 минут. Можем ли мы вызвать код файла MainPage.xaml.cs из ScheduledAgent.cs при запуске метода OnInvoke? Я хочу повторно использовать код, написанный в одном из методов MainPage.xaml.cs.

Если это невозможно, могу ли я подключаться к Интернету каждый раз, когда запускается метод OnInvoke(), извлекать данные и отображать их в виде плиток/тостов? Любые предложения будут действительно оценены.


person krrishna    schedule 02.12.2012    source источник


Ответы (1)


Вы не можете использовать код из MainPage в своем фоновом агенте, потому что ваш основной проект должен ссылаться на проект фонового агента. Таким образом, добавление дополнительной ссылки из фонового агента в основной проект создаст циклическую зависимость.

Но вы по-прежнему можете обмениваться кодом между вашим основным проектом и вашим фоновым агентом. Просто создайте третий проект типа "библиотека классов" и укажите ссылку на него как из основного проекта, так и из проекта фонового агента. Затем поместите общий код в этот дополнительный проект.

person Kevin Gosse    schedule 02.12.2012
comment
Это помогает. У меня мало событий и асинхронных вызовов некоторых веб-служб, и я хочу вызвать этот код из фонового агента. Прерывает ли он выполнение этого кода, если он не завершится в течение 15 секунд? На самом деле этот веб-сервис обновляется каждые 30-45 секунд. Есть ли способ запускать фоновый агент каждый раз, когда я получаю свежие/обновленные данные из веб-службы? Например. когда идет теннисный матч, счет обновляется очень часто. Можем ли мы каким-либо образом показать последний счет на тайлах? - person krrishna; 02.12.2012
comment
@krrishna Вы не можете программно запустить фоновый агент или заставить его работать более 15 секунд. Возможно, вам стоит подумать об использовании push-уведомлений. - person Kevin Gosse; 02.12.2012