私はここで大規模なderpの瞬間を過ごしていることを知っています、そしてこれはおそらく実際に行うのは非常に簡単です-私は周りを検索していくつかの記事を読みましたが、まだ少し苦労しているので、フィードバックや有用なリソースへのポインタは大歓迎です!
PopulateDatagridViews
とにかく、私はさまざまな関数を持っているというクラスを持っていますが、そのうちの1つはと呼ばれExecuteSqlStatement
ています。この関数は十分に単純で、SQL接続を初期化しDataTable
、SQLクエリの結果を入力して返します。同じクラス内に、文字列ビルダーを使用してSQLステートメントを作成するさまざまな関数もあります。(理想的ではありません、私は知っています。)
GUIスレッドでオブジェクトを作成し、PopulateDatagridViews
それを使用して、返されたでさまざまなデータグリッドビューを設定しますDataTables
。例えば:
dataGridViewVar.DataSource = populateDgv.GetCustomers();
当然のことながら、私が抱えている問題は、データベースから読み取るデータが多いほど、UIが応答しなくなる時間が長くなることです。を介してデータを取得するプロセスをPopulateDatagridViews
別のスレッドにシフトするかBackgroundWorker
、これが処理されている間にメインGUIスレッドがロックされないようにします。
BackgroundWorker
これを行うためのを作成し、DoWork
ハンドラーに自分の内の適切な関数への呼び出しを配置できることに気付きましたPopulateDatagridViews
。
BackgroundWorker
クラス内の個々の関数ごとにを作成できると思いますPopulateDatagridViews
が、これを行うためのより効率的な方法は確かにありますか?それが私を曲がり角の周りに駆り立てているので、これに関する正しい方向のポイントに非常に感謝します!
追加情報:バージョン4.0の.Netフレームワークを使用しています。