次の方法で共有


FileSystemWatcher.SynchronizingObject プロパティ

ディレクトリ変更の結果として発行されるイベント ハンドラ呼び出しをマーシャリングするために使用するオブジェクトを取得または設定します。

Public Property SynchronizingObject As ISynchronizeInvoke
[C#]
public ISynchronizeInvoke SynchronizingObject {get; set;}
[C++]
public: __property ISynchronizeInvoke* get_SynchronizingObject();public: __property void set_SynchronizingObject(ISynchronizeInvoke*);
[JScript]
public function get SynchronizingObject() : ISynchronizeInvoke;public function set SynchronizingObject(ISynchronizeInvoke);

プロパティ値

ディレクトリ変更の結果として発行されるイベント ハンドラ呼び出しをマーシャリングするために使用するオブジェクトを表す ISynchronizeInvoke 。既定値は null 参照 (Visual Basic では Nothing) です。

解説

SynchronizingObject が null 参照 (Visual Basic では Nothing) の場合は、 ChangedCreatedDeletedRenamed の各イベントを処理するメソッドがシステム スレッド プールのスレッドで呼び出されます。システム スレッド プールの詳細については、 ThreadPool のトピックを参照してください。

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

Windows フォーム デザイナで Visual Studio .NET の内部で FileSystemWatcher を使用すると、 FileSystemWatcher を格納しているコントロールが SynchronizingObject に自動的に設定されます。たとえば、 Form から継承される Form1 のデザイナに FileSystemWatcher を配置した場合、 FileSystemWatcherSynchronizingObject プロパティには Form1 のインスタンスが設定されます。

必要条件

プラットフォーム: Windows NT Server 4.0, Windows NT Workstation 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

FileSystemWatcher クラス | FileSystemWatcher メンバ | System.IO 名前空間 | ISynchronizeInvoke