我有一个要求,我需要向不同服务器上托管的不同 Web 服务发送多个并行调用。我必须阅读配置文件才能知道必须进行多少次调用。假设有 4 台服务器,并且在每台服务器上托管一个 Web 服务。配置的值为 4 然后我必须并行调用每个服务 4 次。总调用数为 16。这是我所做的代码:
string XmlFile = ConfigurationManager.AppSettings["XMLFile"].ToString();
int num = Convert.ToInt16(ConfigurationManager.AppSettings["NumberOfCalls"]);
Service service1 = new InfoMsg.Manager.Service();
Service service2 = new InfoMsg.Manager.Service();
Service service3 = new InfoMsg.Manager.Service();
Service service4 = new InfoMsg.Manager.Service();
string xmlString = System.IO.File.ReadAllText(XmlFile);
if (!string.IsNullOrEmpty(xmlString))
{
Parallel.For(0, num, i =>
Parallel.Invoke(() => service1.CheckInXML(xmlString),
() => service2.CheckInXML(xmlString),
() => service3.CheckInXML(xmlString),
() => service4.CheckInXML(xmlString))
);
}
我实际上打了 14 到 16 个电话,所以出了点问题。这是正确的方法吗?