ユーザーが選択したアイテムに基づいて呼び出す必要がある呼び出し操作がいくつかあります (すべて異なる) に格納されObservableCollection
、string/int 値を返します。
選択項目が 1 つだけの場合は簡単ですCompleted
。イベントを呼び出して使用し、戻り値を取得できます。
リストには約8個のアイテムがあり、それぞれに対して繰り返しinvoke
操作を実行する必要があります。
foreach
が終了するのを実際には待たずInvokeOperation
、リストの最後まで継続的に反復し、それらを並行して実行することがわかります..一種の...
一度に 1 つの操作のみを実行し、(結果に関係なく) 前の操作が完了したときにのみ繰り返すにはどうすればよいですか?
InvokeOperations の 1 つずつ実行は、私が探しているものです..手がかり、ヒント..?
不明な点があれば教えてください..
乾杯。
編集: InvokeOperation
(s) は互いに異なります。それぞれがDB上で異なる操作を行うため、時間がかかる可能性があります。それらを1対1で実行することを検討する主な理由は、それぞれの出力(成功/失敗)でユーザー画面を更新し、一度にすべてを実行しないことです。 .
//Pseudo-code
foreach (var item in SelectedItems)
{
var id = item.ID;
switch(id)
{
case: 1
InvokeOperataion<int> inv = context.PerformUpdateFor_1(item);
inv.Completed += (s,a) => {
//get the value assign it to Textblock.
};
break;
case: 2
InvokeOperataion<int> inv = context.PerformUpdateFor_2(item);
inv.Completed += (s,a) => {
//get the value assign it to Textblock.
};
break;
//Other cases similar to this
}
}