Что то DotPeek не показывает то, что было сгенерировано. Как сделать, чтоб показывал?
Я хочу взять .exe/.dll, где в исходном коде использовался async/await и посмотреть, что там генерирует компилятор. Увидеть глазами и потрогать руками эту самую Машину состояний. Вот такой код написал:
class Program
{
static async Task KekAsync()
{
Console.WriteLine("Current thread id before await {0}", Thread.CurrentThread.ManagedThreadId);
await Task.Delay(200);
Console.WriteLine("Current thread id after await {0}", Thread.CurrentThread.ManagedThreadId);
await Task.Delay(200);
Console.WriteLine("Current thread id after await again {0}", Thread.CurrentThread.ManagedThreadId);
await Task.Delay(200);
Console.WriteLine("Current thread id after await again and again {0}", Thread.CurrentThread.ManagedThreadId);
}
static async Task Main(string[] args)
{
await KekAsync();
}
}
Нажимаю Release. В настройках DotPeek выставил следующее:
Ну, то есть, show compiler-generated code, судя по названию, и должен за это отвечать.
Загружаю скомпилированный файл и вижу:
А где машина состояний? Где генерация? Вижу просто мой исходный код. Так не интересно( Как посмотреть, что генерирует компилятор для async/await?
P.S. пробовал на .NET Core 3.1 и на последней версии .NET Framework. Работаю на Windows 10.


