閱讀英文

共用方式為


ISynchronizeInvoke 介面

定義

提供同步或非同步執行委派 (Delegate) 的方式。

C#
public interface ISynchronizeInvoke
衍生

備註

介面 ISynchronizeInvoke 提供對象之間有關發生事件之同步和異步的通訊。 實作此介面的物件可以接收事件已發生的通知,而且可以回應事件的相關查詢。 如此一來,用戶端就可以在提交相依於第一個要求的後續要求之前,先確定已處理一個要求。

類別 ISynchronizeInvoke 提供兩種方式來叫用進程:

  1. 使用 BeginInvoke 方法,以異步方式。 BeginInvoke 啟動進程,然後立即傳回。 使用 EndInvoke 等候程式完成為止 BeginInvoke

  2. 使用 方法,以同步方式 InvokeInvoke 啟動進程,等到程式完成,然後傳回。 當控件的主線程與呼叫線程不同時,請使用 Invoke ,以封送處理對適當線程的呼叫。

注意

HostProtectionAttribute用至這個類別的屬性具有下列Resources屬性值: | SynchronizationExternalThreadingHostProtectionAttribute 不會影響桌面應用程式 (這些應用程式的啟動方式一般都是按兩下圖示、輸入命令或在瀏覽器輸入 URL)。 如需詳細資訊,請參閱 HostProtectionAttribute 類別或 SQL Server 程式設計與主機保護屬性

屬性

InvokeRequired

取得值,表示當呼叫實作這個介面的物件時,呼叫端是否必須呼叫 Invoke(Delegate, Object[])

方法

BeginInvoke(Delegate, Object[])

在建立此物件的執行緒上以非同步方式執行委派。

EndInvoke(IAsyncResult)

等候直到由呼叫 BeginInvoke(Delegate, Object[]) 所啟動的處理序完成,然後傳回處理序所產生的值。

Invoke(Delegate, Object[])

在建立此物件的執行緒上同步執行委派,並封送處理對建立執行緒的呼叫。

適用於

產品 版本
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

另請參閱