2

私は基本的なC#.NET4.0WinFormsアプリケーションを使用しています。私がやりたいのは、バックグラウンドスレッドでバックグラウンド操作を実行しているときに、GUIスレッドにプログレスバーを表示するロジックを作成することです。

Androidは、オーバーライドが必要ないくつかのメソッドを持つAsyncTaskクラスを実装しました:onPreExecute、doInBackground、onProgressUpdate、onPostExecute。OnPreExecuteではプログレスバーを表示でき、PostExecute(doInBackgroundメソッドが戻ったとき)では非表示にできます。

ここで、.NET 4.5には同様の機能が組み込まれていることを読みまし た。.NET4.0に類似したものはありますか?そうでない場合は、AndroidのAsyncTaskのようなものを実装することをお勧めしますか、それともC#でこれを行うためのより一般的な方法がありますか?

よろしく、

ダン

4

3 に答える 3

3

.NETで最も近いのはBackgroundWorker、次のイベントを使用するクラスです。

  • DoWorkRunWorkerAsync-が呼び出されたときに発生します。
  • ProgressChangedReportProgress-が呼び出されたときに発生します。
  • RunWorkerCompleted-バックグラウンド操作が完了したとき、キャンセルされたとき、または例外が発生したときに発生します。
于 2012-11-01T16:26:48.590 に答える
1

BackgroundWorkerクラスを見てください。それはあなたが説明したすべての機能を提供します。

于 2012-11-01T16:27:16.453 に答える
0

ここで説明されているように、BackgroundWorkerを使用して独自の抽象クラスを作成できます。BackgroundWorkerを使用したAsyncTask

于 2020-01-29T10:16:58.703 に答える