代码之家  ›  专栏  ›  技术社区  ›  IbrarMumtaz

在.net中寻找“异步”一词的解释?

  •  4
  • IbrarMumtaz  · 技术社区  · 15 年前

    我需要有人解释一下以下的名字;

    1. 异步委托。
    2. 异步方法。
    3. 异步事件。

    我正在复习这篇文章,准备参加我的70-536考试,目前为止我正在复习所有的基础知识。 线程章节和在线资源对我的第二次阅读很有帮助。 不过,上面的名字对我来说毫无意义?我非常理解“异步”一词背后的含义,以及它与委托、方法和事件的相关性。

    你想说多少就说多少。

    5 回复  |  直到 11 年前
        1
  •  12
  •   Jeff Sternal    15 年前

    “异步”描述一种执行流。

    同步指令 线性执行并防止后续指令执行到完成(即 )因此,给定以下同步代码:

    DoOneThing();
    DoAnotherThing();
    

    DoAnotherThing 直到 DoOneThing 完成了。

    异步指令 不同之处在于,你不知道(有时甚至不在乎)它们何时开始或结束执行。在这种情况下:

    DoOneAsynchronousThing();
    DoAnotherThing();
    

    第一个语句启动异步操作,然后在第一个操作完成(甚至可能启动)之前立即执行另一个操作。

    提供异步执行有许多不同的机制:最常见的机制(至少在.NET世界中)可能是 ThreadPool (用于进程内异步执行)和Microsoft消息队列(用于进程间异步执行)。对于特定于.NET的介绍,您可以从 this MSDN topic, "Including Asynchronous Calls" .

    因此,异步委托、方法和事件都在不确定的时间运行(并完成),并且不会阻塞执行的主线程。

        2
  •  4
  •   Roast    15 年前

    我相信在考试的时候学习和寻找答案。

    这里有一些文章

    阅读上面的wiki: http://en.wikipedia.org/wiki/Asynchronous_communication

    或者在这里的“什么是异步”,这是简短的一点: http://www.webopedia.com/TERM/A/asynchronous.html

    例如,在我的代码中,我有一个串行端口。一个线程读取一个线程写入端口。我可以同时读写,所以这是异步的。如果我在写的时候阻塞了输入的数据,那么我将是同步的。

        3
  •  3
  •   Phil Ross Matt Johnson-Pint    15 年前

    请参阅.NET文档中有关 Asynchronous Programming Using Delegates .

    总之,代表们有 BeginInvoke 方法,使您可以异步调用它们。调用时,目标方法将在单独的线程中启动。调用线程可以在目标方法完成时接收回调,并且可以调用 EndInvoke 在委托上检索结果。

        4
  •  2
  •   Adam Robinson    15 年前

    根据您所发布的内容,我假设您知道异步和同步执行之间的区别。

    异步委托(以及扩展的异步事件)仅仅意味着底层方法是(或者方法是!)以异步方式调用。

    异步方法是执行异步操作(heh)的方法。

    很抱歉含糊其辞,但如果你理解异步的含义,那么这应该会给你指明正确的方向。

        5
  •  1
  •   3Dave    15 年前

    如果同步执行某个操作,则应用程序将等待结果:例如,在车道上订购汉堡。在完成任务(准备汉堡、结账和送货)之前,你基本上都是一成不变的。

    如果异步执行,则可以执行其他操作而不是等待:例如,订购比萨饼并在等待交付时观看电影。