/// <summary>
 /// 异步读
 /// </summary>
 /// <param name="stream">数据流</param>
 /// <param name="state">绑定用户对象</param>
 /// <param name="memoryStream">目标字节流</param>
 /// <returns>异步任务</returns>
 public static TmphStreamEndReader readToEndAsync(this Stream stream, object state, TmphMemoryStream memoryStream)
 {
     return new TmphStreamEndReader(stream, state, memoryStream);
 }
 /// <summary>
 /// 数据流异步读
 /// </summary>
 /// <param name="stream">数据流</param>
 /// <param name="state">绑定用户对象</param>
 /// <param name="memoryStream">目标字节流</param>
 public TmphStreamEndReader(Stream stream, object state, TmphMemoryStream memoryStream)
 {
     this.stream = stream;
     try
     {
         this.memoryStream = memoryStream ?? new TmphMemoryStream();
         stream.BeginRead(this.memoryStream.Array, this.memoryStream.Length, this.memoryStream.Array.Length - this.memoryStream.Length, onRead, state);
     }
     catch (Exception error)
     {
         this.error = error;
         completed();
     }
 }