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