[英]Getting data from WCF Async methods inside a foreach loop
在下面的代码中,我有一个列表 object。 我想遍历每个项目并为每个项目 object 上的一个属性分配一个值。 要获取该值,我需要调用 WCF 服务的异步方法。
当对我的 WCF 服务的调用完成时,如何获取该数据并将其分配给 itemsList 中的当前实例 (i)? 有没有办法从我的 xxxCompleted 事件中访问 i?
private void SomeMethod()
{
List<Item> itemsList = GetItems();
foreach(Item i in itemsList)
{
MyClient client = new MyClient();
client.GetSomeValueCompleted += client_GetSomeValueCompleted;
client.GetSomeValueAsync(i.ID);
}
}
private void client_GetSomeValueCompleted(object sender, GetSomeValueEventArgs e)
{
int id = e.Result;
// how do I assign this ID to my itemsList object, i ???
}
您可以将 MyClient class 的实例作为用户状态传递给异步方法调用。
看看这个链接
private void SomeMethod()
{
List itemsList = GetItems();
foreach(Item i in itemsList)
{
MyClient client = new MyClient();
client.GetSomeValueCompleted += client_GetSomeValueCompleted;
client.GetSomeValueAsync(i.ID, client);
}
}
private void client_GetSomeValueCompleted(object sender, GetSomeValueEventArgs e)
{
int id = e.Result;
// how do I assign this ID to my itemsList object, i ???
(e.UserState as MyClient).ID = id;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.