我需要有人解释以下名称;
我目前正在为70-536考试做准备,到目前为止,我已经覆盖了我的所有基础。 在第二次阅读时,线程章节和在线资源对我来说都很好。 尽管如此,上面使用的名字对我来说绝对没有意义?我非常感谢“异步”这个词背后的意义及其与代表,方法和事件的相关性。
随意加入您想要的细节。
答案 0 :(得分:12)
'Asynchronous'描述了一种执行流程。
同步指令线性执行,防止后续指令执行直到完成(即阻止)。因此,给出以下同步代码:
DoOneThing();
DoAnotherThing();
DoAnotherThing
在DoOneThing
完成后才会执行。
异步说明的不同之处在于,当您开始或完成执行时,您不知道(有时甚至不关心)。在这种情况下:
DoOneAsynchronousThing();
DoAnotherThing();
第一个语句启动异步操作,然后在第一个操作完成(或者甚至可能启动)之前立即执行另一个操作。
提供异步执行有许多不同的机制:最常见的机制(至少在.NET世界中)可能是ThreadPool
(用于进程内异步执行)和Microsoft Message Queue(用于交互式)进程异步执行)。对于特定于.NET的介绍,您可以从this MSDN topic, "Including Asynchronous Calls"开始。
所以异步委托,方法和事件都在不确定的时间运行(并完成),并且不会阻塞主线程的执行。
答案 1 :(得分:4)
在考试时,我相信学习并找到答案。
以下是一些文章
阅读上面的维基: http://en.wikipedia.org/wiki/Asynchronous_communication
或者在“什么是异步”这里,这个很简短,重点: http://www.webopedia.com/TERM/A/asynchronous.html
例如,在我的代码中,我有一个串口。一个线程读取,一个线程写入端口。我可以同时读写(有点),所以这是ASYNC。如果我在写作时阻止了数据,那么我就会同步。
答案 2 :(得分:3)
请参阅Asynchronous Programming Using Delegates上的.NET文档中的部分。
总之,代理有一个BeginInvoke
方法,允许您异步调用它们。调用时,目标方法在单独的线程中启动。调用线程可以在目标方法完成时接收回调,并可以在委托上调用EndInvoke
来检索结果。
答案 3 :(得分:2)
鉴于您发布的内容,我假设您知道异步和同步执行之间的区别。
异步委托(并且,通过扩展,异步事件)只是意味着以异步方式调用基础方法(或方法!)。
异步方法是执行异步操作的方法(呵呵)。
很抱歉模糊不清,但如果您了解异步意味着什么,那么这应该指向正确的方向。
答案 4 :(得分:1)
如果您同步执行某些操作,您的应用会等待结果:例如,在驱动器中订购汉堡。在任务(汉堡准备,计费和交付)完成之前,你几乎被排除在外。
如果您异步执行,则执行其他操作而不是等待:例如,在等待交付时订购披萨并观看电影。