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

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

Рассказ о мультизадачности в 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 останутся довольными.

Автор/Разработчик: sergey.zwezdin
Оф. сайт/Источник: http://blog.zwezdin.com/ru/183
Как бесплатно качать с файлообменников

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
  1. Цитата: Ckruel
    Ни хера себе телефончик при заявленых требованиях к железу
    А что вы хотите?
    Необоснованное наращивание требований к железу происходит на всех фронтах, включая обычные настольные ПК. И значительная доля этого прироста мощности железа уходит на все более навороченный, отягощенный красивостями интерфейс.
    Так Виста без интерфейса аэро имеет гораздо более скромные требования к железу, чем с ним. Включение "спецэффектов" (встроенные в KDE4, compiz) обеспечивает заметное торможение достаточно серьезным компьютерам.
    У телефонов те же проблемы.
  1. -FW-eXXon,
    спасибо за обьяснения.вот уже понял
  1. crandel

    ГУИ от англ graphical user interface (GUI) - графический пользовательский интерфейс

    пуш сообщения - сообщения определенному хендлу ( http://en.wikipedia.org/wiki/Handle_(computing) ) - окну, процессу с какими-либо данными, которые процес обрабатывает и выполняет какие-либо действия в зависимости от содержимого
  1. Цитата: -FW-eXXon
    во первых:
    представим ситуацию - им клиент разделен на два процесса один сервис который постоянно работает второй графическая оболочка. При загрузки оперативки процесс ГУИ переходит из оперативной памяти в кеш на основной РОМ. Процесс сервис отправляет пуш сообшение для прочеса ГУИ
    а теперь прикиньте сколько времени понадобится что-бы заново загрузить в оператву ГУИ
    Во вторых:
    Какого размера будет код программы с описанием всех пуш сообшений ИМ клиента, если нужно описать
    1) все пуш сообшения в сервисе + обработку их на приложении гуи (клиент)
    2) все сообшения и их обработку по направлению клиент->сервис

    извините за тупость но я не понял что такое ГУИ и зачем там пуш сервис,если не затруднит обьясните поподробнее
  1. полный бред.
    во первых:
    представим ситуацию - им клиент разделен на два процесса один сервис который постоянно работает второй графическая оболочка. При загрузки оперативки процесс ГУИ переходит из оперативной памяти в кеш на основной РОМ. Процесс сервис отправляет пуш сообшение для прочеса ГУИ
    а теперь прикиньте сколько времени понадобится что-бы заново загрузить в оператву ГУИ
    Во вторых:
    Какого размера будет код программы с описанием всех пуш сообшений ИМ клиента, если нужно описать
    1) все пуш сообшения в сервисе + обработку их на приложении гуи (клиент)
    2) все сообшения и их обработку по направлению клиент->сервис
  1. А между тем, по сообщению Ленты.ру, в iPhone OS 4.0 будет реализована многозадачность.
  1. Что то напоминает функцию на Пк гибернация. Типа сохраняет прошлый не завершенный сеанс до следующего старта пк, только тут сохраняет не завершенный сеанс активной программы и всё
  1. А мне думается, что зря пишете столь негативные комменты. Вполне разумный подход.
    Осталось только узнать конечную цену игрушки с такой осью.
  1. а для телефонов (в лучшем случае весьма слабеньких смартфонов).

    Ни хера себе телефончик при заявленых требованиях к железу blink
    А ценник на это железо, да эта ОС при такой цене ожидаемой должна мне кофе варить, а не просто звонить и аудио-видео производить, для этого уже всё в более нетребовательных платформах реализовано, эх жаль, что все силы мобильного отдела кинуты на этого монстра, жаль предыдущюю WM...
  1. Многозадачность будет.
  1. Нормальная логика реализации многозадачности для телефона и извращенная логика для КПК или коммуникатора (который по сути есть КПК с телефонным модулем).

    Для нормального (пусть и маленького) компьютера, которым является полноценный КПК, было бы гораздо логичнее делать специальным режимом приостановку при переводе в фон.

    Отсюда вывод. WP7 оправдывает свое название и является платформой не для КПК, а для телефонов (в лучшем случае весьма слабеньких смартфонов).
  1. м да thumbdown
  1. Это означает, что вы сможете написать собственную фоновую службу и запустить ее на Windows Phone 7.

    Может пользователям ещё и полвинды дописать за Микрософт ? thumbdown
  1. Anrock623
    ламер lol
    здравствуте вообще командная строка, ДОС, сомманд.ком, и какянить фронтэнд оболочка типа нортона коммандера... lol
    линкус ваще тут не причем, и то что гдето что-то логично, но по каким то причинам не реализовано, еще не означает первичность того кто это публично реализовал...
    многозадачность вообще уже была сделана ДАВНО еще на отечественных аналоговых компутерах...
    а в 1986 году в НИИ "дельта" по волоконной оптике уже передавали 128мегабит...
    так что уткнитесь вы со своим линуксом и андроидом...
    всё будет показано в сравнии на кроссплатформенных тест-программах...
  1. Опять ерунда....
  1. Ждемс :)
  1. Короче доставайте побольше бубнов и будем танцевать.достойное продолжение 6.5 винды.для екстремалов.в прошлых версиях надо было долго настраиваться под себя,а в этой надо еще и поиграться чтоб что-то правильно заработало.БРАВО мелкие сами себя переплюнули thumbdown
  1. Newabramovich,
    согласен smile
  1. Уже от этих новостей башка трещит...поскорее бы она уже вышла чтобы всё улеглось и все МИФЫ были подтверждены или опровергнуты
  1. >приложение на Silverlight/XNA будет некоторой графической оболочкой, а фоновая служба – некоторой логикой, которая работает постоянно.
    Охохо, здравствуй линукс и его демоны и фронтэнды? Только консольку сделайте и я буду доволен.