我正在尝试使用client异步调用WCF服务。 为此,我选择了生成异步操作, 问题是,如果我10次调用相同的服务,则所有100个服务一旦完成,控制权就交给完成的代表,作为响应,它对所有100个服务都给予相同的时间。 对于前这样,我无法获得每个呼叫的响应时间,因为所有呼叫响应都在同一时间返回。 这是我致电服务的代码
wsClient.GetCustomerGeoCodeCompleted += (sender, args) => client_GetCustomerGeoCodeCompleted(sender, args);
wsClient.GetCustomerGeoCodeAsync(GetCustomerGeoCodeRequest, lintRequestCount.ToString());
这是我的代表
public void client_GetCustomerGeoCodeCompleted(object sender, wsIntegrationService.GetCustomerGeoCodeCompletedEventArgs e)
{
try
{
if (e.Error == null)
{
// lintResponseCount += 1;
WriteLog(strResponseLogpath, e.UserState + " - SUCCESS - Get Customer Geo - " + "Record Received" + e.Result.Count().ToString()) + DateTime.Now.ToString("dd-MM-yyyy HH:mm:ss:FFF"));
}
else
{
WriteLog(logpath, "ERROR -> : Get Customer Geo " + e.Error.Message.ToString());
}
}
catch (Exception ex)
{
WriteLog(logpath, "ERROR -> : Get Customer Geo " + ex.Message.ToString());
}
}
任何建议,一旦该请求的服务呼叫结束,我将如何得到安息。
答案 0 :(得分:0)
我添加了等待呼叫并根据需要工作
await Task.Run(() => wsClient.GetSalesOrderV1Async(GetSalesOrderRequest, lintRequestCount.ToString() +"-"+ dr["TenantCode"].ToString()));
让我知道是否有其他方法