Welcome

首页 / 软件开发 / .NET编程技术 / 什么是.Net的异步机制(APM核心IAsyncResult) - step 3

什么是.Net的异步机制(APM核心IAsyncResult) - step 32011-12-05 博客园 Andy Huang异步的核心: IAsyncResult

Asynchronous Programming Model

整个异步调用过程中都是围绕IAsyncResult来进行的,大家可以看看上篇文章的例子,BeginXXX 返回这个对象,EndXXX接收这个对象来结束当前异步对象,下面我们来看看IAsyncResult 接口成员/和实现此接口的AsyncResult类成员(其中有些在上篇中已经涉及到)

IAsyncResult接口

1public interface IAsyncResult2  {3    WaitHandle AsyncWaitHandle { get; } //阻塞一个线程,直到一个或多个同步对象接收到信号4    Boolean IsCompleted { get; } //判读当前异步是否完成5    Object AsyncState { get; } //获取额外的参数值,请看上一篇文章的Code 4.36    Boolean CompletedSynchronously { get; } //几乎没有使用7  }
AsyncResult类

1  public class AsyncResult : IAsyncResult, IMessageSink2  {3    //IAsyncResult 的实现   4    public virtual WaitHandle AsyncWaitHandle { get; }5    public virtual bool IsCompleted { get; }6    public virtual object AsyncState { get; }7    public virtual bool CompletedSynchronously { get; }89    // 其他一些重要的属性10    public bool EndInvokeCalled { get; set; } //检验是否调用了EndInvoke()11    public virtual object AsyncDelegate { get; } //获取原始的委托对象,可查看上一篇文章中的Code 4.1/4.2/512  }
注意:基本上都是只读属性