次の方法で共有


Control.Invoke メソッド (Delegate, Object )

コントロールの基になるウィンドウ ハンドルを所有するスレッド上で、指定した引数リストを使用して、指定したデリゲートを実行します。

Overloads Public Overridable Function Invoke( _
   ByVal method As Delegate, _   ByVal args() As Object _) As Object Implements ISynchronizeInvoke.Invoke
[C#]
public virtual object Invoke(Delegatemethod,object[] args);
[C++]
public: virtual Object* Invoke(Delegate* method,Object* args __gc[]);
[JScript]
public function Invoke(
   method : Delegate,args : Object[]) : Object;

パラメータ

  • method
    args パラメータに指定されている数および型と同じ数および型のパラメータをとるメソッドへのデリゲート。
  • args
    指定したメソッドに引数として渡すオブジェクトの配列。メソッドが引数をとらない場合、このパラメータは null 参照 (Visual Basic では Nothing) になります。

戻り値

呼び出されているデリゲートからの戻り値を格納している Object 。デリゲートに戻り値がない場合は null 参照 (Visual Basic では Nothing) 。

実装

ISynchronizeInvoke.Invoke

解説

コントロールのハンドルがまだ存在しない場合、このメソッドはコントロールの親チェインを検索し、ウィンドウ ハンドルを持つコントロールまたはフォームを見つけます。適切なハンドルが見つからない場合、 Invoke メソッドは例外をスローします。呼び出し中に発生する例外は、呼び出し元まで反映されます。

メモ   スレッドから安全に呼び出される 4 つのメソッド、 InvokeBeginInvokeEndInvoke 、および CreateGraphics がコントロール上にあります。その他のすべてのメソッドの呼び出しについては、Invoke メソッドの 1 つを使用して、その呼び出しをコントロールのスレッドにマーシャリングする必要があります。

デリゲートは、 EventHandler のインスタンスである場合もあります。その場合は、送信元のパラメータにこのコントロールが含まれ、イベント パラメータには EventArgs.Empty が含まれます。デリゲートは MethodInvoker のインスタンス、または空のパラメータ リストをとるその他のデリゲートである場合もあります。 EventHandler デリゲートまたは MethodInvoker デリゲートの呼び出しの方が、別の種類のデリゲートの呼び出しよりも高速に実行されます。

必要条件

プラットフォーム: 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 名前空間 | Control.Invoke オーバーロードの一覧 | MethodInvoker | InvokeRequired