Отладчик не прерывается / не останавливается для исключений в асинхронном методе

Когда отладчик подключен к процессу .NET, он (обычно) останавливается, когда выдается необработанное исключение.

Тем не менее, это не работает, когда вы находитесь вasync метод.

Сценарии, которые я пробовал ранее, перечислены в следующем коде:

class Program
{
    static void Main()
    {
        // Debugger stopps correctly
        Task.Run(() => SyncOp());

        // Debugger doesn't stop
        Task.Run(async () => SyncOp());

        // Debugger doesn't stop
        Task.Run((Func<Task>)AsyncTaskOp);

        // Debugger stops on "Wait()" with "AggregateException"
        Task.Run(() => AsyncTaskOp().Wait());

        // Throws "Exceptions was unhandled by user code" on "await"
        Task.Run(() => AsyncVoidOp());

        Thread.Sleep(2000);
    }

    static void SyncOp()
    {
        throw new Exception("Exception in sync method");
    }

    async static void AsyncVoidOp()
    {
        await AsyncTaskOp();
    }

    async static Task AsyncTaskOp()
    {
        await Task.Delay(300);
        throw new Exception("Exception in async method");
    }
}

Я что-то пропустил? Как сделать так, чтобы отладчик прерывал / останавливал исключение вAsyncTaskOp()?

Ответы на вопрос(3)

Ваш ответ на вопрос