报错:索引超出了数组界限
在写一个多线程操作的时候,根据界面输入的控制数来开启线程,但是报错了,百度过,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]