2010-03-16 43 views
4

我需要有人解释下列名称;在.Net中寻找“异步”字的解释?

  1. 异步代表。
  2. 异步方法。
  3. 异步事件。

我目前正在考试的这个为我的70-536考试,目前我涵盖了所有我的基地。 线程章节和在线资源在我第二次阅读时对我很好。 尽管如此,上面使用的名字对我来说完全没有意义吗?我非常欣赏“异步”这个词的含义及其与代表,方法和事件的关联。

随意进入尽可能多的细节,只要你喜欢。

+0

可怜的你。这本70-536考试真的很糟糕。这是我读过的最糟糕的技术书。祝你考试好运。 – Steven 2010-03-16 20:52:42

+0

Ty,但我第一次就失败了我得到了65% - 我是一个没有经验的开发者,但我认为我确实没问题,但因为我知道我已经足够了解,所以一直没有解决。现在我正在修改所有我很虚弱的领域,但我相当有信心,但我挑战了我坐的考卷的10%。看看这是怎么回事......会让你知道我的上诉是怎么进行的。 – IbrarMumtaz 2010-03-16 21:46:41

回答

12

'异步'描述了一种执行流程。

同步指令线性执行,并防止从执行,直到完成随后的指令(即,它们方框)。因此,考虑以下同步代码:

DoOneThing(); 
DoAnotherThing(); 

DoAnotherThing不执行,直到DoOneThing完成。

异步指令的不同之处在于,您在开始或结束执行时不知道(或者有时甚至在意)。在这样的情况下:

DoOneAsynchronousThing(); 
DoAnotherThing(); 

第一条语句启动异步操作,然后做的第一操作完成之前(或者甚至开始)另一件事。

提供异步执行的机制有很多种:最常见的机制(至少在.NET世界中)可能是ThreadPool(用于进程内异步执行)和Microsoft Message Queue(用于进程间异步执行)。对于一个.NET特定的介绍,你可能会从this MSDN topic, "Including Asynchronous Calls"开始。

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

+0

这似乎是一个可怕的很多信息,以提供一个家庭作业相关的问题。 – 2010-03-16 18:19:33

+0

这个问题是简洁而彻底的回答,所以我没有看到任何抱怨的理由。此外,认证考试不完全是“家庭作业相关”。 – Rob 2010-03-16 18:46:55

+0

@亚当 - 它可能已经过时了,但它没有花很长时间写,我想其他用户可能会在某一天使用它。 (虽然可能不符合当前的标题和标签。) – 2010-03-16 19:24:24

3

请参阅.NET文档中有关Asynchronous Programming Using Delegates的部分。

总之,代表有一个BeginInvoke方法,可让您异步调用它们。被调用时,目标方法在单独的线程中启动。调用线程可以在目标方法完成时接收回调,并可以在代理上调用EndInvoke来检索结果。

+0

为此。我会有一个雄性。 – IbrarMumtaz 2010-03-16 17:55:49

4

我是一个相信在考试中学习和找到答案的人。

这里有一些文章

阅读它的维基: http://en.wikipedia.org/wiki/Asynchronous_communication

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

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

+0

webopedia是一个伟大的链接!感谢那。 现在看看维基百科链接。 * Yipes *:p – IbrarMumtaz 2010-03-16 18:06:08

2

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

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

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

对不起,因为模糊不清,但如果你明白异步的含义,那么这应该指向正确的方向。

1

如果您同步执行某项操作,则应用程序会等待结果:例如,在驱动程序中订购汉堡包。在完成任务(汉堡准备,结算和交付)之前,你几乎陷入了困境。

如果您执行异步操作,则可以执行其他操作而不是等待:例如,订购披萨并观看电影,同时等待传送。