¿Por qué no puedo depurar código en un método asíncrono?

De hecho, comencé la noche tratando de aprender más sobre MongoDB, pero estoy colgado y .NET espera / asíncrono. Estoy tratando de implementar el código que se muestra en MongoDBsitio. Tuve que modificarlo un poco, para poder compilar mi programa. Sé que tengo la siguiente aplicación de mi consola.

    protected static IMongoClient _client;
    protected static IMongoDatabase _database;

    static void Main(string[] args)
    {
        _client = new MongoClient();
        _database = _client.GetDatabase("test");

        GetDataAsync();
    }

    private static async void GetDataAsync() //method added by me.
    {
        int x = await GetData();
    }

    private static async Task<int> GetData()
    {
        var collection = _database.GetCollection<BsonDocument>("restaurants");
        var filter = new BsonDocument();
        var count = 0;
        Func<int> task = () => count; //added by me.
        var result = new Task<int>(task); //added by me.
        using (var cursor = await collection.FindAsync(filter)) //Debugger immediately exits here, goes back to main() and then terminates. 
        {
            while (await cursor.MoveNextAsync())
            {
                var batch = cursor.Current;
                foreach (var document in batch)
                {
                    // process document
                    count++;
                }
            }
        }

        return count; //added by me
    }

Cuando ejecuto la aplicación, el depurador llamará a mi método GetDataAsync () que a su vez llama al método GetData (). Llega a la línea "usando (var cursor = await collection.FindAsync (filter))" y luego regresa inmediatamente para finalizar el método main ().

Los puntos de interrupción que coloque debajo de esa línea se ignoran, al igual que los puntos de interrupción que coloco en el método GetDataAsync (). ¿Este código simplemente no se ejecuta porque el programa sale? ¿Alguien puede explicarme lo que está pasando?

Respuestas a la pregunta(1)

Su respuesta a la pregunta