报错:索引超出了数组界限
在写一个多线程操作的时候,根据界面输入的控制数来开启线程,但是报错了,百度过,google过,最后还是不知道错在哪里?请各位帮忙解决下问题! 
 代码: 
 private   void   Thread() 
 		{ 
 			int   xc=Convert.ToInt32(TextBox3.Text); 
 		         ThreadStart   startDownLoad=new   ThreadStart(dlp);//线程起始设置:即每个线程都执行DownLoad(),注意:DownLoad()必须为不带有参数的方法 
 		         //Thread   downloadThread=new   Thread(startDownLoad);//实例化要开启的新类 
 		         //downloadThread.Start();//开启线程] 
 		         Thread[]   downloadThread;//声名下载线程,这是C#的优势,即数组初始化时,不需要指定其长度,可以在使用时才指定。这个声名应为类级,这样也就为其它方法控制它们提供了可能 
 		         downloadThread=new   Thread[xc];//为线程申请资源,确定线程总数,这里为3个线程 
 			for(int   i=1;i <xc+1;i++)//开启指定数量的线程数 
 			{ 
 			downloadThread[i]=new   Thread(startDownLoad);//指定线程起始设置 
 			downloadThread[i].Start();//逐个开启线程 
 			}
------解决方案--------------------for(int i=1;i <xc+1;i++ )改为 for(int i=0;i <xc;i++) 
 或者 downloadThread=new Thread[xc] 改为 downloadThread=new Thread[xc+1]