sql >> データベース >  >> NoSQL >> MongoDB

MongoDBエンドレスFindToListAsync

    Alexが親切に指摘したように、この問題の解決策はFillCourseListを作成することです。 非同期も。これにより、データベースからデータがフェッチされている間、プログラムの実行を継続できます。私が以前に受けたブロッキングコールが問題の原因だったようです。これにより、スレッドセーフの必要性が追加されます。呼び出し ただし、Windowsフォームに変換します。

        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. mongodbを使用して配列内でelemMatchを実行するにはどうすればよいですか?

    2. SQLに先行ゼロを追加する

    3. Springデータmongodbがmongodb接続を閉じていない

    4. 条件付きのMongodb集計ルックアップ