C# 从foreach循环内的WCF异步方法获取数据
在下面的代码中,我有一个List对象。我希望遍历每个对象,并为每个Item对象上的一个属性赋值。要获取该值,我需要调用WCF服务的异步方法 当对我的WCF服务的调用完成时,如何获取该数据并将其分配给itemsList中的当前实例(I)?有没有办法从我的xxxCompleted事件访问iC# 从foreach循环内的WCF异步方法获取数据,c#,wcf,asynchronous,C#,Wcf,Asynchronous,在下面的代码中,我有一个List对象。我希望遍历每个对象,并为每个Item对象上的一个属性赋值。要获取该值,我需要调用WCF服务的异步方法 当对我的WCF服务的调用完成时,如何获取该数据并将其分配给itemsList中的当前实例(I)?有没有办法从我的xxxCompleted事件访问i private void SomeMethod() { List<Item> itemsList = GetItems(); foreach(Item i in itemsList)
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 ???
}
private void SomeMethod()
{
List itemsList=GetItems();
foreach(项目列表中的项目i)
{
MyClient=新的MyClient();
client.GetSomeValueCompleted+=客户端\u GetSomeValueCompleted;
GetSomeValueAsync(i.ID);
}
}
私有无效客户端\u GetSomeValueCompleted(对象发送方,GetSomeValueEventArgs e)
{
int id=e.结果;
//如何将此ID分配给我的itemsList对象,I???
}
您可以在异步方法调用中将MyClient类的实例作为userstate传递
看看这个
私有方法()
{
List itemsList=GetItems();
foreach(项目列表中的项目i)
{
MyClient=新的MyClient();
client.GetSomeValueCompleted+=客户端\u GetSomeValueCompleted;
GetSomeValueAsync(i.ID,client);
}
}
私有无效客户端\u GetSomeValueCompleted(对象发送方,GetSomeValueEventArgs e)
{
int id=e.结果;
//如何将此ID分配给我的itemsList对象,I???
(e.UserState作为MyClient.ID=ID;
}
可以在异步方法调用中将MyClient类的实例作为userstate传递 看看这个
私有方法()
{
List itemsList=GetItems();
foreach(项目列表中的项目i)
{
MyClient=新的MyClient();
client.GetSomeValueCompleted+=客户端\u GetSomeValueCompleted;
GetSomeValueAsync(i.ID,client);
}
}
私有无效客户端\u GetSomeValueCompleted(对象发送方,GetSomeValueEventArgs e)
{
int id=e.结果;
//如何将此ID分配给我的itemsList对象,I???
(e.UserState作为MyClient.ID=ID;
}
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;
}