ISynchronizeInvoke 接口

定义

提供同步或异步执行委托的方法。

C#
public interface ISynchronizeInvoke
派生

注解

接口 ISynchronizeInvoke 在对象之间提供有关事件发生的同步和异步通信。 实现此接口的对象可以接收已发生事件的通知,并且可以响应有关事件的查询。 这样,客户端可以确保在提交依赖于第一个请求完成的后续请求之前处理了一个请求。

ISynchronizeInvoke 提供两种调用进程的方法:

  1. 异步方式,使用 BeginInvoke 方法。 BeginInvoke 启动一个进程,然后立即返回。 使用 EndInvoke 等待进程启动完成 BeginInvoke

  2. 使用 Invoke 方法同步。 Invoke 启动进程,等待进程完成,然后返回。 Invoke当控件的main线程与调用线程不同时使用 ,以封送对正确线程的调用。

备注

HostProtectionAttribute应用于此类的属性具有以下Resources属性值:Synchronization | ExternalThreadingHostProtectionAttribute 不影响桌面应用程序(通常通过双击图标、键入命令或在浏览器中输入 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

另请参阅