我有一些调用操作(所有不同),我需要根据用户选择的项存储在ObservableCollection
并返回一个字符串/ int值调用操作。如何逐个调用多个调用操作?
现在,当选择只有一个项目时,它很简单,我可以调用并使用Completed
事件并获取我的返回值。
我有约< =我需要迭代和执行每个invoke
操作的列表中的8个项目。
我看foreach
不会真正等待InvokeOperation
完成,只是不断地迭代直到列表的末尾使他们在parallel..sort运行...
如何执行只需一个人操作一次只在前一次操作完成时进行迭代(不管结果如何)?
执行InvokeOperations是我正在寻找..任何线索,提示..?
让我知道如果我不清楚..
干杯。编辑:InvokeOperation
(s)是彼此不同的。他们每个人都对数据库进行不同的操作,这可能会花费很多时间。查看执行它们的主要原因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
}
}
什么* *究竟你说的“调用操作”是什么意思?请给我们一些代码。 – 2012-08-17 10:32:57
我猜他想为每个选定的项目调用(异步)方法,他有一个方法签名,一次只需要一个项目,不知道如何链接调用。 我的第一个建议是编写一个方法,该方法需要一个项目集合,异步调用它并在此方法中执行foreach。 – Paciv 2012-08-17 10:59:41