0

私の.NETアプリでは、大きなSQLテーブルをメモリに読み込んでいます。操作がブロックProgressBarされている間、アプリのウィンドウで少なくともある程度は進行するようにしたいと思います。オブジェクトのバックグラウンドスレッドでSqlDataAdapter.Fill()既に呼び出しがあり、呼び出したフォアグラウンドスレッドでを更新しようとしましたが、機能していません。ここに何か提案はありますか?Fill()BackgroundWorkerProgressBarRunWorkerAsync()

4

1 に答える 1

0

Dataset.Fillから直接進行状況を取得できないため、OnRowUpdate / OnRowUpdatedを直接使用するのは苦痛であり、更新する必要のある行数がわからない限り、それを実行することはできません。

フィルタスクの実行中に、そこでタイマーを鳴らしてアニメーションを更新することもできます。

補足として、スレッドで実行するメソッドを渡す独自のスレッドで実行される小さなアニメーションコンポーネントを作成しました。それをすべてうまく包み込み、使用ブロックの中に物を入れて、すべてきちんと整頓することができます。ファイアアンドフォーゲットスレッドに適しています。モーダルバージョンも実行できます。

于 2013-03-20T19:54:44.190 に答える