sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB oändliga Hitta ToListAsync

Lösningen på problemet, som Alex vänligt påpekade, är att skapa FillCourseList asynkron också. Detta gör att programmet kan fortsätta köras medan data hämtas från databasen. Det blockerande samtalet jag hade tidigare var tydligen orsaken till problemet. Detta ökar behovet av trådsäkert samtal dock till Windows-formuläret.

    private delegate void SetListCallback(List<Course> result);

    private async Task GetCourseList() {
        Task<List<Course>> courseTask = MongoDBController.GetCourses();
        List<Course> result = await courseTask.ConfigureAwait(false);

        // When finished, fill the listbox
        FillCourseList(result);
    }

    private void FillCourseList(List<Course> result) {
        // If the calling thread's ID doesn't match the creating thread's ID
        // Invoke this method on the correct thread via the delegate
        if (this.listBox_overview_vakken.InvokeRequired) {
            SetListCallback d = new SetListCallback(FillCourseList);
            this.Invoke(d, result);
        } else {
            foreach (Course s in result) {
                listBox_overview_vakken.Items.Add(s);
            }
        }
    }



  1. Sortera med MongoEngine?

  2. Mongoose fyller en rad underdokument

  3. Frågar efter befolkning i Mongoose

  4. Redis - Befordra en slav till master manuellt