FileSystemWatcher

ここで作ったツールには、
“FileSystemWatcher” が使われています。
が、いざ使ってみるといろいろ問題。ある程度、予測はしていたことですが、
大きなファイルをコピーした場合、コピーが終わる前に作業が始まってしまう
ことです。これは、ファイルの変更イベント発生した時点で、
ファイルがオープン出来るか否かで判断する方法でどうにか
お茶を濁したのですが、これが次なる問題の引き金なるとは。。。


大きなファイルを複数コピーしたとき、ファイルのオープンに時間が
取られるせいか、ファイルパスの取りこぼしが発生。
さすがに数メガのファイルでは起きませんが、数十メガ単位になってくると頻発。

で、

ファイルパスのコンテナを”Dictionary”に変更して、ファイル変更のイベントが
発生したときの処理を、リストに追加するだけといった軽い処理に変更したら、
とりあえず上手く動いてるみたい。
ファイルのコピーが完了して処理できる状態にあるか否かは、別スレッドの
ループ内で処理させてなんとか解決。
とりあえず、実用レベルまできたかな?

3ds max C# maxscript Posted by Tomoya Kanehira @ 01:25

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です