Робота з мережею Windows 8

Здатність мережевої взаємодії в Metro-додатках дозволяють створювати різні сценарії роботи клієнтської частини з хмарою, залишатися онлайн і ін Широкі можливості Windows 8 дозволяють використовувати різні програмні інтерфейси для обміну даними між додатком і віддаленою точкою підключення в інтернеті або приватній мережі У випадках, коли ми не можемо використовувати прості механізми доступу до мережевих ресурсів, платформа надає безпосередньо використання TCP і UDC протоколів для створення своїх власних високорівневих протоколів

З причини того, що вся взаємодія нашого застосування із зовнішнім оточенням проходить в асинхронному режимі, спочатку ми розглянемо модель асинхронного програмування в Windows 8

Асинхронная модель програмування в Net Framework існує досить давно Але саме в Windows 8 ця модель стала використовуватися вже на рівні самої ОС Тобто все взаємодія додатки з можливостями платформи відбувається асинхронно Такий рівень інтеграції даної моделі програмування в платформу став можливий з появою модифікатора async і оператора await Модифікатор async вказує компілятору, що метод або лямбда-вираз є асинхронними А метод з оператором await діє як асинхронний метод Асинхронний метод може бути реалізований декількома способами, але в кожному разі не виникатиме помилка компіляції при відсутності оператора await Компілятор всього лише виведе попередження про відсутність оператора await і сам метод буде виконуватися синхронно

Модифікатор async не є обовязковим Його можна застосовувати до методів, лямбда-виразів або анонімним методам Оператор await також є не обовязковим

За своєю природою асинхронні методи – це методи, які не блокують операції Виразawait  в асинхронному методі не блокує поточний потік під час виконання завдання Замість цього, частина, що залишилася методу (код, який розташований нижче виклику асинхронного методу) «запаковується» в метод зворотного виклику і виконується після роботи асинхронного методу

Наведемо приклад роботи з асинхронним методом:

private async Task&ltbyte[]&gt GetURLContentsAsync(string url)

{

.

using (WebResponse webResponse = await webRequestGetResponseAsync())

.

}

Більш детальну інформацію про роботу асинхронних методів ви можете отримати на сайті MSDN (http://msdnmicrosoftcom/en-us/library/hh191443 (v = vs110) Aspx)

Сергій Лутай, Сергій Байдачний, Windows 8 для C # розробників

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*