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, що підтримують синтаксис С#.

Читати далі...

Метою уроку є ознайомлення з шаблоном асинхронного програмування 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 - 200 відгуків

Віталій Новіцький
Віталій Новіцький
5/5
Проходив курси «JavaScript Стартовый», «JavaScript Базовый» та «HTML5 & CSS3 Углубленный». Матеріал викладається доступно, без лишньої інформації. Незалежно від викладача, кожен курс цікавий по своєму, інформація подається доступно з фокусом на основні деталі. Практичні завдання цікаві й допомагають повністю розібратись в прослуханому матеріалі. Платформа зручна і проста в користуванні. За результатами пройденого матеріалу можна пройти тестування, з об’єктивним оцінюванням засвоєних знань, і отримати сертифікат. Раджу усім.
Почитати оригінал
Facebook

Відгуки в Facebook

5,0/5 - 707 відгуків

Андрей Сотов
Андрей Сотов
5/5
Лучший IT-образовательный сайт в украинской части интернета. Курсы постоянно обновляются и дополняются. Грамотную подача материала: интересно, понятно, доступно. Рекомендую всем!
Почитати оригінал
Google

Відгуки в Google

4,9/5 - 836 відгуків

Vitaliy Zhugda
Vitaliy Zhugda
5/5
Здраствуйте! Я был участником курса «Изучай JavaScript Стартовый», очень понравилась подача материала, все понятно и доступно. Рекомендую всем кто хочет сделать первый шаг в изучение JS!
Почитати оригінал

Купуй підпискуз доступом до всіх курсів та сервісів

Бібліотека сучасних IT знань у зручному форматі

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

Стартовий
  • Усі відеокурси на 3 місяці
  • Тестування з 10 курсів
  • Перевірка 5 домашніх завдань
  • Консультація з тренером 30 хв
59.99 $
Придбати
Преміум Plus
  • Усі відеокурси на 12 місяців
  • Тестування з 24 курсів
  • Перевірка 20 домашніх завдань
  • Консультація з тренером 120 хв
  • Завантаження відео уроків
149.99 $
199.99 $
Придбати
Акція
Базовий
  • Усі відеокурси на 6 місяців
  • Тестування з 16 курсів
  • Перевірка 10 домашніх завдань
  • Консультація з тренером 60 хв
89.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