C# 使用线程从控制台应用程序调用web服务
我必须在控制台应用程序中使用线程调用web服务(每个调用都在线程上)。线程数最初为5,将来可能会更改,即更改线程数我必须使用app.config。我面临的问题是,我必须在循环3个表时调用web服务,并且表数据不受限制C# 使用线程从控制台应用程序调用web服务,c#,multithreading,C#,Multithreading,我必须在控制台应用程序中使用线程调用web服务(每个调用都在线程上)。线程数最初为5,将来可能会更改,即更改线程数我必须使用app.config。我面临的问题是,我必须在循环3个表时调用web服务,并且表数据不受限制 foreach (DataRow rowclient in ds.Tables[0].Rows) { foreach (DataRow rowN in ds.Tables[1].Rows) { foreach (DataRow rowD in ds.
foreach (DataRow rowclient in ds.Tables[0].Rows)
{
foreach (DataRow rowN in ds.Tables[1].Rows)
{
foreach (DataRow rowD in ds.Tables[2].Rows)
{
poolThread[i] = new Thread(CallP);
System.Threading.Thread.Sleep(25);
poolThread[i].Start();
i++;
//check whether there is any thread available in pool
}
其中,CallP
是调用Web服务的实际方法,我必须等待线程,直到一个线程被释放
现在我犯了一个错误
索引超出了数组的边界
我是线程新手,请帮帮我。错误在哪里抛出?您在哪里初始化
poolThread
集合?这是解决问题的一种非常过时的方法。。。考虑.NET的任务并行库(TPL)。特别是您应该使用TPL之类的东西,以便在<代码>聚合异常> /代码>下可以正确地冒泡多个异常。您正在研究的这种方法是有风险的,并且可能是线程不安全的。哪一行抛出IndexOutOfBoundException?你能发一张MCVE吗?