MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Dlaczego nie mogę debugować kodu w metodzie asynchronicznej?

Ponieważ nie jesteś await ing GetDataAsync metoda. Kiedy pierwszy await zostanie osiągnięty wątek jest zwracany do wywołującego. Ponieważ nie czekasz na zakończenie zadania, aplikacja konsolowa kończy działanie i nie osiągasz punktu przerwania. Będziesz także musiał zaktualizować GetDataAsync metoda do zwrócenia Task zamiast pustki. Nie możesz czekać na pustkę. Powinieneś unikać używania asynchronicznego void do czegokolwiek innego niż procedura obsługi zdarzeń.

protected static IMongoClient _client;
protected static IMongoDatabase _database;

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

    GetDataAsync().Wait(); 
    // Will block the calling thread but you don't have any other solution in a console application
}

private static async Task 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
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak przekazać ObjectId z MongoDB w MVC.net?

  2. Pierwszy hosting DBaaS MongoDB obsługujący platformę Azure dla sektora publicznego

  3. mongodb/mongoose findMany - znajdź wszystkie dokumenty z identyfikatorami wymienionymi w tablicy

  4. MongoDB — eksport danych

  5. Monitorowanie bazy danych za pomocą ClusterControl