C# Асинхронное программирование
ITVDN: курсы программирования
Видеокурсы по
программированию
Подписка

300+ курсов по популярным IT-направлениям

Выбери свою IT специальность

Подписка
Подписка

300+ курсов по популярным IT-направлениям

О курсе

Асинхронный подход к программированию позволяет создавать код, выполнение которого не будет блокировать выполнение другого кода. Благодаря такому подходу, например, одновременно может быть выполнено много разных задач или можно разделить выполнение одной большой громоздкой задачи на части, которые могут быть выполнены не последовательно, одна за другой, а одновременно.

Данный курс знакомит с подходами к асинхронному программированию в языке C#. Вы познакомитесь со средствами асинхронного и параллельного программирования, примерами применения этих подходов, сочетанием и отделением этих подходов к разработке. На курсе вы познакомитесь с шаблоном асинхронного программирования TAP (Task-based Asynchronous Pattern), сравните его с шаблонами APM и EAP. Также вы разберетесь в том, что такое ключевые слова async/await, рассмотрите их техническую реализацию, чтобы лучше понимать, как работает ваш асинхронный код. Далее вы рассмотрите, что такое Thread и ThreadPool и как они принимают участие в выполнении асинхронного кода, настройку продолжения задачи (TaskContinuation), планировщик задач (TaskScheduler) и контекст синхронизации, примеры работы с большим количеством задач, теорию блокировки и синхронизацию в многотекущей среде, а также реализацию этих средств в .NET (например, монитор, семафор, компьютер и другие).

Отдельно на курсе рассматриваются потокобезопасные коллекции, их назначение и строение, что такое распределенное программирование, виды многозадачности - выжимная и не выжимная. Вы познакомитесь с разными средствами класса Parallel и методами PLINQ, рассмотрите различные шаблоны параллельной и асинхронной обработки данных.

Этот курс подойдет как новичкам в программировании, так и опытным .NET разработчикам, желающим улучшить свои знания по асинхронному и параллельному программированию в C#. Для понимания рассмотренных в курсе тем потребуется знание языка C# на уровне C# Углубленный.

Читать дальше...
Посмотреть бесплатный урок

Предварительные Требования

  • C#
  • LINQ
  • VisualStudio
Читать дальше...

Вы научитесь

  • Написать асинхронный код.
  • Лучше понимать, как работают ключевые слова async/await.
  • Разобраться, как оптимально создавать, стартовать и ожидать задачи.
  • Выбрать наиболее подходящие средства синхронизации и блокировки ресурсов.
  • Узнать, какие средства параллелизации существуют в C# и в каких случаях их лучше использовать.
  • Лучше понимать, какие проблемы могут решить параллельное и асинхронное программирование.
  • Научиться использовать шаблоны асинхронного и параллельного программирования.
Читать дальше...
Скачать материалы курса Для получения материалов курса нужно авторизоваться
Получить сертификат Для получения сертификата нужно авторизоваться
  • Длительность: 5 ч 52 м
  • Уроков: 8
  • Язык: украинский

Что входит в курс

  • 8 видео уроков
  • Домашние задания
  • Тестирование
  • Сертификат

×

Вы открыли доступ к тесту! Пройти тест

Вы действительно хотите открыть доступ к тестированию по курсу C# Асинхронное программирование на 40 дней?

Войдите или зарегестрируйтесь для того чтоб продолжить просмотр бесплатного видео

Это первый урок курса, целью которого является ознакомление с основной терминологией, сферами использования и средствами асинхронного программирования. Важной частью этого и последующих уроков являются практические примеры применения методов асинхронного программирования для решения различных задач, поэтому студенту желательно установить одну из IDE, поддерживающих синтаксис C#.

Читать дальше...

Цель урока – ознакомление с шаблоном асинхронного программирования TAP (Task-based Asynchronous Pattern), сравнение его с уже рассмотренными шаблонами APM и EAP.

Также во время занятия вы вспомните, чем параллелизм отличается от конкурентности и какие средства для них содержит TPL. Подробно рассмотрим классы Task/Task<TResult>, после чего повторим, чем reference-типы отличаются от value-типов и познакомимся с ValueTask/ValueTask<TResult>. Мы поговорим о шаблонах Абстрактная Фабрика и Фабричный метод, чтобы лучше понять, что такое TaskFactory/TaskFactory<TResult> и как им пользоваться. Закончив планирование задач, рассмотрим их отмену (Cancellation) и продолжение (TaskContinuation).

Читать дальше...

Цель урока - разобраться в том, что представляют собой ключевые слова async/await, рассмотреть их техническую реализацию, чтобы лучше понимать, как работает ваш асинхронный код. Освежим в памяти теоретические знания о законченном автомате (state machine) и рассмотрим пример, сгенерированный компилятором. Также мы познакомимся с типами, которые могут возвращать асинхронные методы и разберем на примерах, как и когда ими следует пользоваться. Познакомимся с контекстом выполнения и контекстом синхронизации, посмотрим, как они используются в асинхронном конечном автомате.

Читать дальше...

На этом уроке мы продолжим разбираться, как и благодаря чему работает уже рассмотренный нами асинхронный законченный автомат. Также мы упомянем, что такое Thread и ThreadPool и как они участвуют в выполнении асинхронного кода. Поговорим о настройке продолжения задачи (TaskContinuation), планировщике задач (TaskScheduler) и контексте синхронизации, рассмотрим примеры работы с большим количеством задач.

Читать дальше...

Цель этого занятия – понять, в каких случаях возникает deadlock и как его можно избежать. Также мы упомянем теорию блокировки и синхронизации в многопоточной среде, рассмотрим реализацию этих средств в .NET (например, монитор, семафор, мьютекс и другие). Также мы вспомним, какие ошибки мы видели, вызывая асинхронный код, и как такие ошибки можно обработать.

Читать дальше...

Цель этого урока – знакомство с потокобезопасными коллекциями, их назначением и строением.
В ходе урока мы повторим теорию о коллекциях, рассмотрим, как построены базовые коллекции, которая скрывается за ключевым словом foreach и зачем нам нужен итератор. Также мы познакомимся с потокобезопасными коллекциями из пространства имен System.Collections.Concurrent и разберемся, как они работают. Кроме того, рассмотрим тип Channel, который может использоваться в асинхронном коде без дополнительных средств синхронизации.

Читать дальше...

Целью этого урока является подведение всего, что мы знаем о создании и выполнении задач, а также более детальное ознакомление с планировщиком задач.

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

Читать дальше...

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

В ходе урока мы вспомним, чем конкурентность отличается от параллелизма, узнаем, что такое распределенное программирование. Также поговорим о видах многозадачности – вытеснительной и не вытеснительной. Познакомимся с разными средствами класса Parallel и методами PLINQ. В конце урока рассмотрим различные шаблоны параллельной и асинхронной обработки данных и выполнения операций, которые можно использовать для решения задач.

Читать дальше...
ПОКАЗАТЬ ВСЕ

Отзывы наших студентов

DOU

Отзывы в DOU

4,9/5 - 195 отзывов

Володимир Бурцев
Володимир Бурцев
5/5
Я вже не новачок у розробці. Проте вивчав Java, а працювати почав на іншій мові. Багато чого важливого і навіть базового позабував, а тут за допомогою ретельного проходження по всім пунктам і аспектам згадую все що потрібно і не висмикуючи з контексту, а послідовно щоби нічого не пропустити. Тут дуже багато окремих гілок за обраним напрямком. Був би час 🙂 PS записи трошки вкрилось пилом і часто зустрічаю помилки/обмовки, але в цілому на якість це не впливає. РАДЖУ!
Почитать оригинал
Facebook

Отзывы в Facebook

5,0/5 - 704 отзыва

Иван Шаповалов
Иван Шаповалов
5/5
Отличная подача материала, все подробно объясняется, приводятся примеры. Очень понравился курс 'С# Базовый'. Буду продолжать обучение!
Почитать оригинал
Google

Отзывы в Google

4,9/5 - 814 отзыва

Дмитро Цюприк
Дмитро Цюприк
5/5
Замечательные курсы от ITVDN. Преподаватели объясняют сложные вещи простым языком. Начал проходить курс JavaScript стартовый, очень понравилось. Буду рекомендовать эту платформу знакомым.
Почитать оригинал

Покупай подпискус доступом ко всем курсам и сервисам

Библиотека современных IT знаний в удобном формате

Выбирай свой вариант подписки в зависимости от задач, стоящих перед тобой. Но если нужно пройти полное обучение с нуля до уровня специалиста, то лучше выбирать Базовый или Премиум. А для того чтобы изучить 2-3 новые технологии, или повторить знания, готовясь к собеседованию, подойдет Пакет Стартовый.

Стартовый
  • Все видеокурсы на 3 месяца
  • Тестирование по 10 курсам
  • Проверка 5 домашних заданий
  • Консультация с тренером 30 мин
59.99 $
Оформить подписку
Базовый
  • Все видеокурсы на 6 месяцев
  • Тестирование по 16 курсам
  • Проверка 10 домашних заданий
  • Консультация с тренером 60 мин
89.99 $
Оформить подписку
Премиум
  • Все видеокурсы на 1 год
  • Тестирование по 24 курсам
  • Проверка 20 домашних заданий
  • Консультация с тренером 120 мин
169.99 $
Оформить подписку

Вопросы и ответы

У чому перевага онлайн курсів програмування у порівнянні з офлайн?
Яка вартість навчання?
Скільки часу знадобиться, щоб опанувати програмування?
Скільки часу знадобиться, щоб опанувати ІТ-спеціальність?
З якого курсу розпочинати навчання?
Як керувати своїм часом та організувати ефективне онлайн-навчання з тренером?
Чи є у вас допомога з працевлаштуванням після закінчення навчання?
Чи можливе персональне навчання з тренером ITVDN?
З якого віку можна навчатися на платформі?
Чи потрібні знання англійської мови для навчання?Чи потрібні знання англійської мови для навчання?
Якого рівня можна досягти, пройшовши навчання зі спеціальності?
Коли закінчиться підписка, що далі? Доступу до уроків не буде?
Чи додаються знижки на придбання підписки?
У чому перевага онлайн курсів програмування у порівнянні з офлайн?

Онлайн курси мають низку переваг перед офлайн форматом:

  1. Незалежність від локації. Онлайн дозволяє навчатися де завгодно.
  2. Збереження часу та грошей на дорогу. Ви економите час та гроші з поїздок на курси та назад.
  3. Онлайн курси дешевші. Немає потреби в приміщенні та ноутбуках для студентів, тому вартість нижча
  4. Комфортний темп навчання, постійний доступ до інформації. Навчання у вашому темпі будь-коли і будь-де 24/7. Також є доступ до записаних уроків, чого немає в офлайн форматі.
Яка вартість навчання?

На ITVDN є 2 формати навчання: Live Online та відео курси. Ціна навчання залежить від обраного вами способу навчання.

Якщо ви хочете навчатися самостійно у форматі відео курсів, вартість навчання складе в середньому 10-15 USD на місяць в залежності від обраного вами пакету підписки.

Live Online – це онлайн навчання з тренером у групах разом із іншими студентами. Навчання у даному форматі коштує в середньому 6-7 USD за одну годину.

Скільки часу знадобиться, щоб опанувати програмування?

Залежить від того, скільки уваги програмуванню ви виділятимете щоденно, яка саме це мова і який у вас досвід кодингу. Середній час на опанування однієї мови за умови регулярних занять хоча б 2 год/день:

  • новачки – від 3 до 6 місяців;
  • ті, хто мають базові знання з іншої мови – від 1 до 3 місяців;
  • професійні програмісти – до 1 місяця.

Найкращий варіант інвестиції часу – 8 годин щоденно (20% теорії + 80% практики). Більше практики – швидше опанування програмування.

Скільки часу знадобиться, щоб опанувати ІТ-спеціальність?

Для опанування ІТ-спеціальності треба виділити не менше 500 годин, з яких близько 100 годин – на перегляд відео уроків або відвідування онлайн занять із ментором, а 400 – на виконання практичних завдань за пройденими темами.

В залежності від того, скільки часу ви готові виділяти на навчання в день, ви зможете пройти програму за 3-8 місяців. Якщо у вас є певна база знань з ІТ, кількість необхідного часу буде меншою.

Також тривалість навчання залежить від обраної вами спеціальності, оскільки набір технологій, які ви маєте вивчити, буде різним. 

З якого курсу розпочинати навчання?

Починати варто з тих, які містять в назві слово “Стартовий”. Такі курси мають вступний матеріал для знайомства з мовою або технологією.

Якщо ж ви плануєте навчатися за конкретною спеціальністю у форматі відео курсів, перейдіть на сторінку спеціальності і прокрутіть до заголовку “Відео курси за спеціальністю …”. Нижче буде список відео курсів, котрі відсортовано в порядку необхідності вивчення.

Ще нижче ви знайдете Roadmap зі спеціальності – путівник, на якому зображені відео курси у вигляді дерева, що також вас легко зорієнтує у послідовності проходження курсів.

Як керувати своїм часом та організувати ефективне онлайн-навчання з тренером?

Якщо ви обираєте Live Online навчання з тренером, все дуже просто:

  • відвідуйте всі заняття, вчасно виконуйте д/з;
  • додатково дивіться відео уроки на ITVDN;
  • після кожного уроку проходьте коротке тестування;
  • практикуйтеся в Інтерактивному практикумі;
  • спілкуйтеся з одногрупниками в ході вирішення д/з, задавайте питання ментору на уроках та поза ними;
  • в кінці кожного курсу складайте екзамен на TestProvider (та отримуйте Сертифікати);
  • в кінці всього навчання проходьте екзамен зі спеціальності і отримайте Диплом.
Чи є у вас допомога з працевлаштуванням після закінчення навчання?

Ми маємо спеціальний розділ – “Вакансії”, котрий допомагає нашим студентам шукати першу роботу в ІТ. Детальніше про можливості та призначення розділу за посиланням.

А для тих, хто навчається онлайн з ментором, у нас додатково передбачена індивідуальна допомога HR-фахівця щодо підготовки до працевлаштування з першого дня навчання і до отримання першого job-оферу. Вона включає в себе допомогу в оформленні соцмереж, підготовці резюме, проведення пробної співбесіди, надання порад щодо пошуку роботи та самопрезентації тощо. 

Чи можливе персональне навчання з тренером ITVDN?

На жаль, дана послуга на ITVDN не передбачена, однак ви можете замовити індивідуальну консультацію з нашим ментором. Деталі ви знайдете за посиланням.

З якого віку можна навчатися на платформі?

На ITVDN відсутні курси для дітей, тому комфортний вік для початку навчання за нашими матеріалами – від 14 років.

Чи потрібні знання англійської мови для навчання?Чи потрібні знання англійської мови для навчання?

Ніяких вимог до вашого рівня англійської ми не висуваємо, оскільки всі навчальні матеріали йдуть російською або українською мовами. При цьому базові знання англійської будуть корисні для комфортного пошуку інформації в гуглі, читання документацій в інтернеті тощо.

Якого рівня можна досягти, пройшовши навчання зі спеціальності?

На ITVDN можна пройти повне навчання з нуля до спеціаліста рівня Trainee/Junior. Якщо ви вже практикуючий розробник, наші відео курси допоможуть поглибити ваші знання до рівня Middle.

Коли закінчиться підписка, що далі? Доступу до уроків не буде?

Після закінчення дії вашої підписки доступ до відео курсів, на жаль, буде закрито. Однак ви зможете користуватися тими навчальними матеріалами, які ви завантажили на свій девайс під час навчання.

Чи додаються знижки на придбання підписки?

Ні, знижки не додаються.

Notification success