Держите полезную статью о том, как реализована асинхронность в C#.
О чём статья?
⏩Статья обсуждает различия в реализации асинхронных методов в .NET Framework и .NET Core.
⏩В .NET Framework выделяется много объектов, связанных с асинхронными вызовами, что приводит к большому объему памяти.
⏩В .NET Core реализация асинхронных методов значительно изменилась, что привело к уменьшению выделения памяти.
⏩
ExecutionContext в .NET Core теперь является неизменяемым, что упрощает передачу контекста и делает его передачу более распространенной.⏩Логический
CallContext в .NET Core больше не существует, а его функции моделируются через AsyncLocal<T>⏩В .NET Core глобальная очередь
ThreadPool реализована как ConcurrentQueue<T>, что позволяет оптимизировать выделение памяти.⏩Реализация метода
AwaitUnsafeOnCompleted в .NET Core отличается от .NET Framework, что приводит к более эффективному использованию памяти.📎 Статья
📎 На английском
@csharp_ci
