Dans le code ci-dessous, j'ai un objet List. Je veux passer en revue chacun d'eux et affecter une valeur à l'une des propriétés de chaque objet Item. Pour obtenir la valeur, j'ai besoin d'appeler une méthode async d'un service WCF.Obtention de données à partir de méthodes WCF asynchrones dans une boucle foreach
Lorsque l'appel à mon service WCF se termine, comment puis-je prendre ces données et l'affecter à l'instance actuelle (i) dans itemsList? Y a-t-il un moyen d'accéder à i depuis mon événement xxxCompleted?
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 ???
}