次の方法で共有


ISynchronizeInvoke インターフェイス

定義

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

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

注釈

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

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

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

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

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

プロパティ

名前 説明
InvokeRequired

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

メソッド

名前 説明
BeginInvoke(Delegate, Object[])

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

EndInvoke(IAsyncResult)

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

Invoke(Delegate, Object[])

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

適用対象

こちらもご覧ください