"Incorrect usage of Parallel.For"

private static void Example() {
	var dataArray = new SomeDataType[400];
	FillRawData(dataArray);
	
	Parallel.For(0, 3, i => {
		ProcessDataChunk(dataArray, 100 * i, 100 * (i + 1));
	});
}

private static void ProcessDataChunk(SomeDataType[] dataArray, int startIndex, int endIndex) {
	for (int i = startIndex; i < endIndex; ++i) {
		dataArray[i].Process();
	}
}


Code snippet taken from "Common Multithreading Mistakes in C# - IV: Everything Else".