Многопоточное считывание файла c#

возникла потребность в нескольких потоках читать и обрабатывать файл. Есть массив потоков, каждый из них считывает свою область файла. Ниже код:

for (int i = 0; i < proccesorsCount; i++)
{
     start = end * i;
     _end = end * (i + 1);
     threads[i] = new Thread(() => _readFile(fileName, start, _end));
     threads[i].Name = "Поток №" + i;
     threads[i].Start();
     Thread.Sleep(10);
}

Собственно, вопрос: Если убрать Thread.Sleep(10), то с индексами start и _end, начинают твориться чудеса. Например, они становятся равны индексам последнего блока во всех потоках:


магия индексов

Примечание: Я знаю, что можно использовать ThreadPool и т.п., но мне интересно, что здесь происходит


Ответы (0 шт):