sql >> Database >  >> NoSQL >> MongoDB

MongoDB eindeloos Find ToListAsync

De oplossing voor het probleem, zoals Alex vriendelijk opmerkte, is het maken van de FillCourseList ook asynchroon. Hierdoor kan het programma blijven draaien terwijl de gegevens uit de database worden opgehaald. De blokkerende oproep die ik eerder had, was blijkbaar de oorzaak van het probleem. Dit voegt wel de behoefte toe aan thread-safe oproepen naar het Windows-formulier.

    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. lentegegevens mongodb _id-toewijzingsvoorkeur

  2. Redis configureren om consequent oudere gegevens eerst te verwijderen

  3. find() en findOne() methoden in MongoDB met verschillende resultaten

  4. Mongo met java - zoek zoekopdracht met batchgrootte