FileSystemWatcherメモ

マーシャリング

FileSystemWatcher.Changedなどのイベントハンドラ内で"Cross thread operation not valid"が出たら、

FileSystemWatcher.SynchronizingObject = this;

を追加。thisはFormコンポーネントを指してる。

SynchronizingObjectについて

 Changed、Created、Deleted、Renamed の各イベントを Button などの Windows フォーム コンポーネントで処理するとき、システム スレッド プールを通じてコンポーネントにアクセスできなかったり、例外が発生したりする場合があります。これを防ぐには、SynchronizingObject を Windows フォーム コンポーネントに設定して、コンポーネントが作成されたスレッドと同じスレッドで Changed、Created、Deleted、Renamed の各イベントを処理するメソッドが呼び出されるようにします。