Skip to content

AsyncProperty 类

AsyncProperty对象保存由UserControl.AsyncRead启动的异步读取结果。它被传递给AsyncReadCompleteAsyncReadProgress事件,在其中标识此通知对应的读取,报告下载进度,并在完成时提供下载的值。每个属性均为只读:运行时在引发事件前填充此对象。

标识读取

用户控件可能同时有多个未完成的异步读取,因此传递给每个事件的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 -- 读取完成后返回下载的值

twinBASIC及其LOGO版权为作者"韦恩"所有