バックグラウンドスレッドでMVVMビューモデルProgress
のプロパティを変更するにはどうすればよいですか?MVVMのバックグラウンドスレッドの進行通知?
Task.Factory.StartNew()
とParallel.ForEach()
を使用して、バックグラウンドスレッドでタスクを実行するMVVMアプリケーションを作成しています。私はthis articleを参考にしています。 fileList
は、ファイルのリストがある
Task.Factory.StartNew(() => DoWork(fileList, viewModel));
が処理され、viewModel
はProgress
プロパティを持つビューモデルである:これまでのところ、私のコードは次のようになります。 DoWork()
方法はこれまでのところ、次のようになります。
private object DoWork(string[] fileList, ProgressDialogViewModel viewModel)
{
Parallel.ForEach(fileList, imagePath => ProcessImage(imagePath));
}
ProcessImage()
方法は、実際の画像処理を行います。ビューモデルのProgress
プロパティは、バックグラウンドプロセスの開始直前に表示されるダイアログの進行状況バーにバインドされます。
Parallel.ForEach()
ステートメントの各繰り返しの後で、ビューモデルProgress
プロパティを更新したいとします。私がする必要があるのは、プロパティ値をインクリメントすることだけです。それ、どうやったら出来るの?ご協力いただきありがとうございます。
「進行」はint、float、またはdoubleですか? –