スポンサーリンク
スポンサーリンク

Windowsフォームアプリで実装するシンプルな処理中ダイアログ

.NET CoreC#SQL ServerVisual StudioWindowsWindowsフォームアプリオープンソースツール・サービスデータベース

空気が良い日本の地区ランキング 2023年 で実装したWindowsフォームアプリは、処理中ダイアログをシンプルに実装していて、処理中ダイアログを早く実装したい場合の参考になります。
ソースコードは GitHub で公開しています。

 

処理中ダイアログ側

処理中ダイアログ側の処理は、StatusTextプロパティに渡された値を、txtStatusテキストボックスに表示しているだけです。

 

処理中ダイアログを呼び出す側の実装

「CSVファイルをインポート」ボタンのクリックイベント処理から、ファイル操作/DB操作の細かい処理は除外し、確認/完了メッセージボックス表示、Task実行、処理中ダイアログ表示/非表示のみにすると下記になります。

・btnCsvFileImport_Clickボタンクリックイベントハンドラは asyncを加えて非同期メソッドへ変更。
・ファイルインポート/DB処理は、Task.Run()内に実装し、別スレッドで実行。
・別スレッドの task開始後、ProcessingDialog.ShowDialog()で処理中ダイアログを表示し、await task が終わるまで、処理中ダイアログは表示したままにしている。
・インポートしたファイルが増える度に、processingDialog.Invoke()を通して processingDialog.StatusTextプロパティに進行状況テキストを渡している。
・Task.Run()内の最後処理に、processingDialog.Invoke()を通して processingDialog.Close()を実行することで、ファイルインポート/DB処理が終わったら ProcessingDialog処理中ダイアログを閉じている。

 

「CSVファイルをインポート」ボタンのクリックイベント処理から、ファイル操作/DB操作の細かい処理を除外していない、元のソースコードは下記になります。

 

コメント

タイトルとURLをコピーしました