Опрос
Вы участвуете в программе Windows Insider?
Популярные новости
Обсуждаемые новости

Фоновое исполнение задач в Windows Phone 7

Напечатать страницу
08.04.2010 10:52 | deeper2k

Мой рассказ о мультизадачности в Windows Phone 7 наделал много шума среди будущих пользователей и разработчиков для этой мобильной платформы. В итоге за две недели я получил больше сотни комментариев из различных источников (в блоге, на сторонних ресурсах, в почте, в IM). В основном авторы этих комментариев были недовольны отсутствием многозадачности в Windows Phone 7. Давайте разберемся как же все-таки обстоят дела на самом деле.

Главное, что хочется сказать - многозадачность в Windows Phone 7 есть (дочитайте до конца и убедитесь, что это действительно так). Процессы в операционной системе исполняются параллельно и могут обрабатывать задачи пользователя.

Путаницу вызывает то, что Windows Phone 7 приостанавливает приложения Silverlight и XNA при переключении на другое приложение или при возникновении какого-либо события (например, звонок по телефону). Более того, приложение может быть и вовсе удалено из памяти, если операционной системе будет недостаточно ресурсов (состояние приложение при этом не теряется и будет восстановлено операционной системой при следующем запуске приложения).

Однако, как я уже писал, команда разработчиков в данный момент работает над созданием службы для выполнения фоновых задач. Это означает, что вы сможете написать собственную фоновую службу и запустить ее на Windows Phone 7. Эта служба будет работать как фоновый процесс и не будет прерываться операционной системой. При этом, судя по всему, приложение Silverlight или XNA сможет взаимодействовать с вашей фоновой службой и управлять ею.

Таким образом, для приложений, которым важна именно работа в фоне предлагается модель разработки, при которой приложение на Silverlight/XNA будет некоторой графической оболочкой, а фоновая служба - некоторой логикой, которая работает постоянно. В таком случае приостановка/выгрузка именно приложения Silverlight/XNA очень логична, поскольку это всего лишь пользовательский интерфейс для работающей в фоне службы (которая, напомню, не приостанавливается).

Кроме того, нужно не забывать о том, что в Windows Phone 7 существуют уведомление (Push Notifications), которые позволяют по внешнему событию восстановить работу и приложения Silverlight/XNA, т.е. по сути запустить нашу графическую оболочку.

Еще одним подтверждением наличия многозадачности является то, что эмулятор, поставляемый в составе Windows Phone Developers Tools CTP на данный момент не реализует полностью функциональность приостановки приложений в момент переключения. Это означает, что если мы напишем небольшое приложение, которое по таймеру увеличивает счетчик и отображает его на форме, запустим приложение и переключимся на другое приложение, то таймер все равно будет работать.

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

Примеры задач, требующих фонового исполнения, которые смогли привести мои собеседники:

  • клиенты IM (Jabber, ICQ, MSN, ..);
  • запись трека GPS (другие сценарии работы с GPS);
  • антивирусное ПО;
  • проигрывание музыки;
  • агенты для корпоративного использования;
  • загрузка почты;
  • будильник;
  • автоматическое обновление социальных служб (например, Twitter) при изменении условий (например, местоположения).


Как видно, предложенный подход к организации многозадачности позволяет покрыть каждый из этих сценариев. Это означает, что Windows Phone 7 есть полноценная многозадачность, а не "немного многозадачности". Если в этом списке нет какого-либо случая, который невозможно реализовать используя приведенную концепцию - дайте нам знать.

На этом, я надеюсь, мифы об отсутствии многозадачности в Windows Phone 7 будут развенчаны, а будущие пользователи Windows Phone 7 останутся довольными.


Источник: http://blog.zwezdin.com/ru
Автор: sergey.zwezdin

Комментарии

Не в сети

"В таком случае приостановка/выгрузка именно приложения Silverlight/XNA очень логично"
"Это означает, что в Windows Phone 7 есть полноценная многозадачность"

08.04.10 13:10
0
Для возможности комментировать войдите в 1 клик через

По теме

Акции MSFT
420.55 0.00
Акции торгуются с 17:30 до 00:00 по Москве
Все права принадлежат © ms insider @thevista.ru, 2022
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.093 секунд (Общее время SQL: 0.074 секунд - SQL запросов: 53 - Среднее время SQL: 0.00139 секунд))
Top.Mail.Ru