ISynchronizeInvoke インターフェイス

定義

デリゲートを同期的または非同期的に実行する方法を提供します。

public interface class ISynchronizeInvoke
public interface ISynchronizeInvoke
type ISynchronizeInvoke = interface
Public Interface ISynchronizeInvoke
派生

注釈

インターフェイスは ISynchronizeInvoke 、イベントの発生に関するオブジェクト間の同期および非同期通信を提供します。 このインターフェイスを実装するオブジェクトは、イベントが発生したことを示す通知を受け取ることができ、イベントに関するクエリに応答できます。 これにより、クライアントは、最初の要求の完了に依存する後続の要求を送信する前に、1 つの要求が処理されていることを確認できます。

クラスには ISynchronizeInvoke 、プロセスを呼び出す 2 つの方法があります。

  1. メソッドを使用して非同期的に BeginInvokeBeginInvoke はプロセスを開始し、すぐにを返します。 によって開始BeginInvokeされたプロセスが完了するまで待機するには、 を使用EndInvokeします。

  2. メソッドを使用して同期的に InvokeInvoke はプロセスを開始し、完了するまで待機してから、 を返します。 コントロールの メイン スレッドが呼び出し元のスレッドと異なる場合にを使用Invokeして、適切なスレッドの呼び出しをマーシャリングします。

注意

HostProtectionAttributeこのクラスに適用される属性のプロパティ値は Resources です。 Synchronization | ExternalThreading HostProtectionAttribute は、デスクトップ アプリケーション (通常、アイコンのダブルクリック、コマンドの入力、またはブラウザーへの URL の入力により起動されます) には影響しません。 詳細については、 クラスまたは SQL Server プログラミング属性とホスト保護属性に関するページを参照してくださいHostProtectionAttribute

プロパティ

InvokeRequired

このインターフェイスを実装するオブジェクトを呼び出すときに、呼び出し元が Invoke(Delegate, Object[]) を呼び出す必要があるかどうかを示す値を取得します。

メソッド

BeginInvoke(Delegate, Object[])

このオブジェクトを作成したスレッド上でデリゲートを非同期的に実行します。

EndInvoke(IAsyncResult)

BeginInvoke(Delegate, Object[]) の呼び出しによって開始されたプロセスが完了するまで待機し、そのプロセスによって生成された値を返します。

Invoke(Delegate, Object[])

このオブジェクトを作成したスレッド上でデリゲートを同期的に呼び出し、その呼び出しを作成元のスレッドにマーシャリングします。

適用対象

こちらもご覧ください