ええと、TThreadについて質問です。基本的なことかもしれないんですが、
なんだか混乱してきてしまったので。

メイン側でTListの変数を持っていて、これに、ファイル名、サイズ、日付のメンバを持つ
構造体のポインタが入ってます。ShortString、Integer、TDateTimeです。
これをスレッド側に渡してこのファイルのリストを処理したい場合、
どういう形にするのが正しいんでしょうか?

1)コンストラクタなりスレッドのプロパティなりで、渡されたリストの保持する
 構造体を全部コピーする
2)スレッドが動いている間はメイン側・スレッド側ともリストの更新はしないという前提で、
 コンストラクタでListのポインタだけ保持しといてここから参照する

constructor Create(List: TList);
begin
 FList := List; (FListはスレッドのフィールド)
 ・・・
end;

procedure Execute;
begin
 (例えば)
if ExistFile(FList[xx].ファイル名) then
 ・・・
end;

3)2で取得したFListにアクセスする場合は常にSynchronize?

コード内で2)の前提がしっかりしてれば、読むだけなんで問題なさそうですけど
なんとなく糞コードのような気がしてなりません。
どうしたものでしょうか・・・
自分ならこうするという話でも教えてもらえるとうれしいです。