次の方法で共有


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 つのメソッド、 InvokeBeginInvokeEndInvoke 、および 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