ミ,,゚Д゚彡フサギコとモナーのDelphi質問相談談話室
■ このスレッドは過去ログ倉庫に格納されています
0281デフォルトの名無しさん
NGNGなんだか混乱してきてしまったので。
メイン側で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)の前提がしっかりしてれば、読むだけなんで問題なさそうですけど
なんとなく糞コードのような気がしてなりません。
どうしたものでしょうか・・・
自分ならこうするという話でも教えてもらえるとうれしいです。
■ このスレッドは過去ログ倉庫に格納されています