C# 从foreach循环内的WCF异步方法获取数据

C# 从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)

在下面的代码中,我有一个List对象。我希望遍历每个对象,并为每个Item对象上的一个属性赋值。要获取该值,我需要调用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  ???
}
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;
}