我想读取服务器上文本文件的数据并使用 Active X Chilkat 将其显示在我的程序中。我使用
Http.QuickGetObjAsync
方法来读取文本,我希望通过这种方法,程序在读取文本之前不会被锁定。但程序被锁定,直到文本被读取并显示为止。
这是我的代码:
Dim WithEvents Http As ChilkatHttp
Dim Http As New ChilkatHttp
Dim task As ChilkatTask
Set task = Http.QuickGetObjAsync("http://www.example.com/notification.txt")
If (Http.LastMethodSuccess <> 1) Then
Debug.Print Http.LastErrorText
Exit Sub
End If
success = task.Run()
If (success <> 1) Then
Debug.Print task.LastErrorText
Exit Sub
End If
Do While task.Finished <> 1
' Sleep 100 ms.
task.SleepMs 50
Loop
If (task.StatusInt <> 7) Then
Debug.Print "Task did not complete."
Debug.Print "task status: " & task.status
Exit Sub
End If
Dim resp As New ChilkatHttpResponse
success = resp.LoadTaskResult(task)
MsgBox resp.Body
If (success <> 1) Then
Debug.Print resp.LastErrorText
Exit Sub
End If
Debug.Print "status code: " & resp.StatusCode
Debug.Print "response header: " & resp.Header
success = glob.FinalizeThreadPool()
我也用过这个代码。但好像这个活动没有执行,没有效果。
Private Sub http_TaskCompleted(ByVal task As Chilkat_v9_5_0.IChilkatTask)
Dim response As New ChilkatHttpResponse
Dim success As Long
success = response.LoadTaskResult(task)
If (success <> 1) Then
Debug.Print response.LastErrorText
MsgBox response.Body
Exit Sub
End If
Debug.Print response.Body
End Sub
有没有办法防止程序在阅读文本时锁定?
注意:Chilkat 版本:9.5.0.91
TaskCompleted 回调是从后台线程调用的,这在 VB6 中运行得不太好。你不会想用它的。
更好的方法是使用带有 HeartbeatMs 属性值的 AbortCheck 事件(回调)。请参阅https://chilkatsoft.com/chilkat_vb6_keep_ui_from_locking_up.asp