ありがとうございます。
速度とかは重要ではなくて各スレッドの処理が正しく終わるかどうかが問題なのですが
ReadAllLinesで返される配列のメモリがどう確保されるのか分からなくて質問させてもらいました。

遅くなるだけで壊れはしないという事は
同時に呼ばれた場合もちゃんと別の領域を確保してそれを返してくれるという事でしょうか。