Pourquoi ne puis-je pas déboguer du code dans une méthode asynchrone?

J'ai en fait commencé la nuit à essayer d'en apprendre plus sur MongoDB, mais je suis arriver a raccroché et le .NET vous attendent/async choses. Je suis en train de mettre en œuvre le code indiqué sur MongoDB est site. J'ai eu à le modifier un peu, afin que je puisse obtenir mon programme à compiler. Je sais avoir la suite de mon application console.

    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
    }

Quand je lance l'application, le débogueur s'appeler dans mon GetDataAsync() méthode qui appelle à son tour dans la méthode GetData (). Il arrive à la ligne "using (var curseur = attendent la collection.FindAsync(filtre))" et puis retourne immédiatement à la finition de la méthode main ().

De tout casser points que j'ai mis en dessous de cette ligne sont ignorés, comme le sont tous les points d'arrêt, j'ai mis dans le GetDataAsync() la méthode. Est-ce code tout simplement pas l'obtenir parce que les sorties de programme? Quelqu'un peut m'expliquer ce qui se passe?

source d'informationauteur Dave