Microsoft.Bcl.Async позволяет разработчикам использовать async/await ключевые слова без .NET Framework 4.5, для которых они предназначены для их использования.
Это здорово, благодаря невероятно тяжелой работе людей в CLR и языковых командах Microsoft.
Теперь мне любопытно, как это может работать.
async/await требует от компилятора сделать тяжелый подъем, чтобы превратить код в то, что может ожидать ожидание операций.
Компилятор изначально генерирует ошибки компиляции в .NET Framework 4.0, даже если он четко знает, что означает async/await (Visual Studio 2012/2013.)
Итак, как эта библиотека сообщает компилятору не бросать определенные ошибки компиляции, связанные с асинхронными операциями, и делать некоторый код, как и в .NET Framework 4.5?