Delay 延时组件概述
📖 简介
cDelay 是一个延时对象类,支持三种工作模式:事件触发模式、回调函数模式和同步等待模式。适用于需要延时执行的各种场景。
✨ 主要特性
| 特性 | 说明 |
|---|---|
| 三种工作模式 | 事件触发、回调函数、同步等待 |
| 支持参数传递 | 回调模式支持最多9个参数 |
| UI不卡顿 | 同步模式使用消息泵,不阻塞UI |
| 可取消 | 支持取消延时操作 |
| 全局管理 | 自动管理全局资源和实例计数 |
🚀 快速开始
事件模式(默认)
vb
Private WithEvents Delay As cDelay
Private Sub Form_Load()
Set Delay = New cDelay
Delay.CountDown 3000 ' 3秒后触发 OnTime 事件
End Sub
Private Sub Delay_OnTime()
Debug.Print "延时结束!"
End Sub回调模式
vb
Private Delay As cDelay
Private Sub TestCallback()
Set Delay = New cDelay
Delay.Callback(Me, "MyFunction", "参数1", 123).CountDown 2000
End Sub
Public Sub MyFunction(ByVal p1 As String, ByVal p2 As Long)
Debug.Print "回调执行: " & p1 & ", " & p2
End Sub同步等待模式
vb
Private Delay As cDelay
Private Sub TestSync()
Set Delay = New cDelay
Debug.Print "开始等待..."
Delay.Sync().CountDown 3000 ' 等待3秒,不卡UI
If Delay.IsCancelled Then
Debug.Print "等待被取消"
Else
Debug.Print "等待完成"
End If
End Sub📋 工作模式对比
| 模式 | 枚举值 | 说明 | 适用场景 |
|---|---|---|---|
| 事件模式 | dmEvent | 通过 OnTime 事件触发 | 需要事件响应的UI操作 |
| 回调模式 | dmCallback | 调用指定对象的指定方法 | 需要传递参数的场景 |
| 同步模式 | dmSync | 阻塞等待但处理消息 | 顺序执行但保持UI响应 |
🔗 相关文档
- methods.md - 方法详细参考
- properties.md - 属性详细参考
最后更新: 2026-05-17