Почему я не могу отладить код в асинхронном методе?

Я фактически начал ночь, пытаясь узнать больше о MongoDB, но я зацикливался на вещах .NET await / async. Я пытаюсь реализовать код, показанный на MongoDBсайт, Мне пришлось немного его изменить, чтобы я мог заставить мою программу компилироваться. Я знаю следующее мое консольное приложение.

    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
    }

Когда я запускаю приложение, отладчик вызывает мой метод GetDataAsync (), который, в свою очередь, вызывает метод GetData (). Он попадает в строку «using (var cursor = await collection.FindAsync (filter))», а затем немедленно возвращается для завершения метода main ().

Любые точки останова, которые я ставлю ниже этой линии, игнорируются, как и любые точки останова, которые я ставлю в методе GetDataAsync (). Этот код просто не запускается из-за выхода из программы? Может кто-нибудь объяснить мне, что происходит?

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

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