Control.InvokeRequired プロパティ
呼び出し元がコントロールの作成されたスレッドと異なるスレッド上にあるため、コントロールに対してメソッドの呼び出しを実行するときに、呼び出し元で invoke メソッドを呼び出す必要があるかどうかを示す値を取得します。
Public Overridable ReadOnly Property InvokeRequired As Boolean _ Implements ISynchronizeInvoke.InvokeRequired
[C#]
public virtual bool InvokeRequired {get;}
[C++]
public: __property virtual bool get_InvokeRequired();
[JScript]
public function get InvokeRequired() : Boolean;
プロパティ値
コントロールの Handle が、呼び出しスレッドと異なるスレッド上で作成された (invoke メソッドを通じてコントロールを呼び出す必要があることを示す) 場合は true 。それ以外の場合は false 。
実装
ISynchronizeInvoke.InvokeRequired
解説
Windows フォーム内のコントロールは、特定のスレッドにバインドされているため、スレッド セーフではありません。したがって、異なるスレッドからコントロールのメソッドを呼び出す場合は、コントロールの invoke メソッドを使用して、適切なスレッドへの呼び出しをマーシャリングする必要があります。このプロパティを使用すると、invoke メソッドを呼び出す必要があるかどうかを確認できるため、どのスレッドがコントロールを所有しているかわからない場合に役立ちます。コントロール上に、任意のスレッドから安全に呼び出される 4 つのメソッド、 Invoke 、 BeginInvoke 、 EndInvoke 、および CreateGraphics があります。その他のすべてのメソッドの呼び出しについては、異なるスレッドから呼び出すときは、これらの invoke メソッドの 1 つを使用する必要があります。
マルチスレッド処理された Windows フォーム コントロールの詳細については、「 マルチスレッド Windows フォーム コントロールのサンプル 」を参照してください。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
Control クラス | Control メンバ | System.Windows.Forms 名前空間 | Invoke | InvokeGotFocus | InvokeLostFocus | InvokeOnClick | InvokePaint | InvokePaintBackground