我正在阅读一个包含大约200个文件的文件夹。我认为这是创建4个流来以4到1 1循环读取文件。但是我无法传递数组错误控件。 这是示例:
FileInfo[] fileArray = _directoryInfo.GetFiles("*.txt");
for(int i = 0; i<fileArray.Length;i+=4)
{
Thread t1 = new Thread(function(fileArray[i]));
t1.Start();
Thread t2 = new Thread(function(fileArray[i+1]));
t2.Start();
Thread t3 = new Thread(function(fileArray[i+2]));
t3.Start();
Thread t4 = new Thread(function(fileArray[i+3]));
t4.Start();
}
但结果已收到
IndexOutOfRangeException
我检查fileArray有200个文件txt。 我需要一个解决方案......
答案 0 :(得分:1)
for(int i = 0; i<fileArray.Length;i+=4)//Here is the problem
您检查i<fileArray.Length
,但在循环内访问fileArray[i+3]
。
我不确定为什么一次启动4
个帖子。你可以简单地写上面这样的代码:
for(int i = 0; i<fileArray.Length;i++)
{
Thread t1 = new Thread(function(fileArray[i]));
t1.Start();
}
另请注意,启动大量线程绝不是一个好主意,请记住,您的计算机只能同时执行N
个线程数,其中N
是核心数