Планувальник задач (TaskScheduler). Вкладені та дочірні задачі
ITVDN: курси програмування
Відеокурси з
програмування

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

Підписка

×

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

Ви дійсно бажаєте відкрити доступ до тестування за курсом C# Асинхронне програмування на 40 днів?

ВІДЕОУРОК № 7. Планувальник задач (TaskScheduler). Вкладені та дочірні задачі

Для перегляду повної версії відеокурсу, онлайн тестування та отримання доступу до додаткових навчальних матеріалів придбайте курс Придбати курс
Для перегляду всіх відеокурсів ITVDN, представлених у Каталозі, а також для отримання доступу до навчальних матеріалів та онлайн тестування придбайте підписку Придбати підписку

Це перший урок курсу, метою якого є ознайомлення із основною термінологією, сферами використання та засобами асинхронного програмування. Важливою частиною цього та наступних уроків є практичні приклади застосування методів асинхронного програмування для розв’язання різних задач, тож студенту бажано встановити одну з 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. Наприкінці уроку розглянемо різні шаблони паралельної та асинхронної обробки даних та виконання операцій, які ви зможете використовувати для розв’язання задач.

Читати далі...
ПОКАЗАТИ ВСЕ

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

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

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

Стартовий
  • Усі відеокурси на 3 місяці
  • Тестування з 10 курсів
  • Перевірка 5 домашніх завдань
  • Консультація з тренером 30 хв
59.99 $
Придбати
Преміум Plus
  • Усі відеокурси на 12 місяців
  • Тестування з 24 курсів
  • Перевірка 20 домашніх завдань
  • Консультація з тренером 120 хв
  • Завантаження відео уроків
199.99 $
Придбати
Базовий
  • Усі відеокурси на 6 місяців
  • Тестування з 16 курсів
  • Перевірка 10 домашніх завдань
  • Консультація з тренером 60 хв
89.99 $
Придбати
коментарі та обговорення
Notification success