【发布时间】:2017-07-07 23:33:28
【问题描述】:
尝试通过异步调用从 Web 服务请求数据。
开始了类似的Wait until event has finished 帖子,在这种情况下,我能够使用无异步方法。现在情况并非如此。当前的 Web 服务没有可用的 None-Async 方法。那么我将如何开始并确定来自事件“RespService_Send_Completed”的事件是否在启动/继续循环中的下一行之前完成。如果事件成功,则来自 web 服务的返回是“e.Result”中的 UUID。
foreach (string id in uuid)
{
WebRef.ResponderService RespService = new WebRef.ResponderService();
_uuid = id;
RespService.SendDataAsync(id);
RespService.SendCompleted += RespService_Send_Completed;
}
调用方法时代码运行良好
public void InvokeSend(string[] uuid)
在 string[] uuid 中有一个值。但是当数组包含多个时,代码会失败。
public class SendReciveSoapData
{
private string _uuid { get; set; }
public void InvokeSend(string[] uuid)
{
foreach (string id in uuid)
{
WebRef.ResponderService RespService = new WebRef.ResponderService();
_uuid =id;
RespService.SendDataAsync(id);
RespService.SendCompleted += RespService_Send_Completed;
}
}
void RespService_Send_Completed(object sender, WebRef.CompletedEventArgs e)
{
//Saving Response Data to database
string SuccessID = e.Result;
string TransactionID = _uuid;
DataBase db = new DataBase();
db.UpdateResponseID(SuccessID, TransactionID);
}
}
【问题讨论】:
标签: c# asp.net web-services asynchronous