C# 针对多个WCF请求的最佳方法

C# 针对多个WCF请求的最佳方法,c#,wcf,.net-3.5,C#,Wcf,.net 3.5,我有一个方法,它接收一个productID数组,并使用它们获取每个productID的日期。问题是,该服务只能为每种产品给我一个日期。 我无法访问服务端。。。只有客户。 有没有更好的方法来执行下面的代码 ChannelFactory<IService> channelFactory = null; IService client = null; List<DateTime> dates = new List<DateTime>(); using (chann

我有一个方法,它接收一个productID数组,并使用它们获取每个productID的日期。问题是,该服务只能为每种产品给我一个日期。 我无法访问服务端。。。只有客户。 有没有更好的方法来执行下面的代码

ChannelFactory<IService> channelFactory = null;
IService client = null;
List<DateTime> dates = new List<DateTime>();

using (channelFactory = new ChannelFactory<IService>("endpointName"))
{
    for (int i = 0; i < productIds.Length; i++)
    {
        client = channelFactory.CreateChannel();

        Request request = new Request();
        request.Id = productIds[i];

        Response response = client.execute(request);
        dates.Add(response.Date);
    }
}
ChannelFactory ChannelFactory=null;
IService client=null;
列表日期=新列表();
使用(channelFactory=newchannelfactory(“endpointName”))
{
for(int i=0;i
看起来您不必在每次迭代中创建通道,只需在循环之前创建一次。您还可以尝试并行化流:svcutil可以生成基于任务的异步操作,我相信ChannelFactory本身也有类似的功能。
但是,如果没有适当的服务器端支持,恐怕不可能减少服务调用的数量。

基于任务的异步操作在.net 3.5中不可用,我想是的,对。我错过了.net-3.5标签。我认为Begin*-End*方法也可以做同样的事情。