メソッドに渡された項目の内容のみを変更する限り、ロックは必要ありません。
(もちろん、リストに重複した参照、つまり同じFileMemberEntity
インスタンスへの 2 つの参照がないことを前提としています。)
リスト自体を変更する必要がある場合は、反復可能なコピーを作成し、リストを変更するときにロックを使用します。
List<FileMemberEntity> fileInfo = getList();
List<FileMemberEntity> copy = new List<FileMemberEntity>(fileInfo);
object sync = new Object();
Parallel.ForEach(copy, fileMember => {
// do something
lock (sync) {
// here you can add or remove items from the fileInfo list
}
// do something
});