に私は非同期的にしてUIを更新する必要があり、画像パスのリストを持っている:これは私のイメージがあるためことを除いて、素晴らしい作品ロードWPF画像一覧非同期は、特定の順序
foreach (string path in paths) {
Task.Run(x => {
var bitmap = getBitmap(path);
Dispatcher.BeginInvoke((Action)() => Images.Add(new Image() { Source = bitmap; }));
});
}
追加された順序が必ずしもpaths
のリストに存在する順序であるとは限りません(これは期待される振る舞いではありません)。
前のタスクが完了するまで1つのタスクが完了しないような方法でループを実行する方法はありますか?
キュー順序はgetBitmap
ですが、paths
リストと同じ順序でディスパッチが行われるようにしたいと考えています。
各ディスパッチ呼び出しの順序を制御できない場合、以前のタスクが完了するまでタスクが実行されないようにタスク自体を注文する方法はありますか?