指定した間隔が経過したときに発行されるイベント ハンドラ呼び出しをマーシャリングするために使用するオブジェクトを取得または設定します。
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) の場合、 Elapsed イベントを処理するメソッドはシステムのスレッド プールのスレッドで呼び出されます。システム スレッド プールの詳細については、「 ThreadPool 」を参照してください。
Elapsed イベントをボタンなどのビジュアルな Windows フォームのコンポーネントで処理するとき、システム スレッド プールを通じてコンポーネントにアクセスすると例外が発生したり、アクセスできない場合があります。これを防ぐには、 SynchronizingObject を Windows フォーム コンポーネントに設定して、コンポーネントが作成されたスレッドと同じスレッドで Elapsed イベントを処理するメソッドが呼び出されるようにします。
Visual Studio 内部の Windows フォーム デザイナで Timer を使用すると、 SynchronizingObject には Timer が格納されているコントロールが自動的に設定されます。たとえば、 Form から継承される Form1 のデザイナに Timer を配置した場合、 Timer の SynchronizingObject プロパティには Form1 のインスタンスが設定されます。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
Timer クラス | Timer メンバ | System.Timers 名前空間 | Form | ISynchronizeInvoke | ThreadPool | Elapsed