AsyncProperty 类
AsyncProperty对象保存由UserControl.AsyncRead启动的异步读取结果。它被传递给AsyncReadComplete和AsyncReadProgress事件,在其中标识此通知对应的读取,报告下载进度,并在完成时提供下载的值。每个属性均为只读:运行时在引发事件前填充此对象。
标识读取
用户控件可能同时有多个未完成的异步读取,因此传递给每个事件的AsyncProperty必须标识该事件对应的读取。PropertyName返回启动请求时提供给AsyncRead的名称——通常是控件将要赋值的属性名称。Target返回正在下载的URL或文件路径。AsyncType返回AsyncTypeConstants值,标识数据的传递方式——图片、文件或字节数组。
vb
Private Sub UserControl_AsyncReadComplete(ByVal Prop As AsyncProperty)
Select Case Prop.PropertyName
Case "Picture"
Set Picture = Prop.Value
Case "DataFile"
' Prop.Value是下载的临时文件路径。
End Select
End Sub下载的值
读取完成后,Value保存结果。其具体子类型由AsyncType决定:请求数据为图片时为stdole.IPictureDisp,请求为文件时为包含下载临时文件路径的String,请求原始字节时为Byte数组。Value仅在AsyncReadComplete事件中有意义——在进度通知期间读取尚未完成。
跟踪进度
读取进行中时,运行时定期引发AsyncReadProgress,使控件能够更新进度指示器。BytesRead报告目前已到达的字节数,BytesMax报告预期总字节数——但当服务器未公布内容长度时BytesMax可能为零。Status返回当前步骤的人类可读描述("正在连接"、"正在接收响应"等),StatusCode返回对应的AsyncStatusCodeConstants值,供编程检查。
成员
- AsyncType -- 返回正在读取的数据类型(图片、文件或字节数组)
- BytesMax -- 返回读取的预期总字节数
- BytesRead -- 返回目前已读取的字节数
- PropertyName -- 返回执行读取的属性名称
- Status -- 返回当前读取状态的人类可读描述
- StatusCode -- 返回当前读取状态的AsyncStatusCodeConstants值
- Target -- 返回正在读取的URL或路径
- Value -- 读取完成后返回下载的值