繁体   English   中英

从 foreach 循环中的 WCF 异步方法获取数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM