代码之家  ›  专栏  ›  技术社区  ›  Jaswant Agarwal

如何使用isynchronizeinvoke接口?

c#
  •  11
  • Jaswant Agarwal  · 技术社区  · 15 年前

    什么是工作程序 ISynchronizeInvoke ?

    如何在C中使用它?

    2 回复  |  直到 9 年前
        1
  •  15
  •   Marc Gravell    15 年前

    这基本上描述了在线程之间推送工作的方法;要将一个工作项推送到另一个线程上,请使用 Invoke (同步)或 BeginInvoke (异步-理想情况下调用 EndInvoke 稍后)。同样地, InvokeRequired 习惯于问“我需要这样做吗?或者我能自己完成这项工作吗?”.

    这个接口最常见的用法是在Windows窗体中,它是如何将工作推送到UI线程的一部分;当然,您可以使用 Control.Invoke / Control.BeginInvoke 同样,但是表单控件实现了这个接口以允许抽象——所以下游代码不需要将自己绑定到Windows表单。如果是表格, 发票规格 意思是“我是用户界面线程吗?”.

    实际上,我不确定直接使用它是否常见。在UI上处理事件更为常见,并且使用最合适的本地机制让UI处理线程切换。

    典型用法:

    obj.Invoke((MethodInvoker) SomeMethod);
    

    执行(通过委托) SomeMethod 在由管理的线程上 obj (实现接口)。

        2
  •  2
  •   rahul    15 年前

    ISynchronizeInvoke Interface

    ISynchronizeInvoke接口 提供同步和异步 对象之间的通信关于 事件的发生。物体 实现这个接口的 接收事件已发出的通知 发生了,他们可以对 有关事件的查询。这样, 客户机可以确保一个请求 在提交前已处理 取决于 完成第一个。

    也指

    http://blogs.msdn.com/jaredpar/archive/2008/01/07/isynchronizeinvoke-now.aspx