vb6 – 等待使用超时创建文件

我正在尝试制作一个vb6 prog来等待创建一个pdf文件.
现在我只是暂停3秒:

startTime = Time
endTime = TimeValue(startTime) + TimeValue(TimeSerial(0,3))
While endTime > Time
Wend

If FSO.FileExists(sPdfFileName) Then
    OkCreatedPDF = True
Else
    OkCreatedPDF = False
End If

但有时候pdf创作花费的时间超过3秒.所以我想等待创建文件,但是超时(10秒).我不想延长等待时间,因为这将会运行一千次.

解决方法

你可以使用1000毫秒的睡眠,这意味着它将等待1秒,直到它继续运行代码,使用一个名为sTimeout的标志变量你可以定义它将运行循环的秒数,我硬编码10但你可以制作另一个用于设置秒的变量,每秒运行循环并将sTimeout增加1,一旦达到10,它将完成while循环.

Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

Function GeneratePDF()
    Dim sTimeout as Integer

    Call YourPDFroutine()

    StatusLabel.Caption = "Wait until PDF is finished..."
    While FSO.FileExists(sPdfFileName) = False
        sTimeout = sTimeout + 1
        Sleep 1000
        If sTimeOut > 10 Then
            OkCreatedPDF = False
            StatusLabel.Caption = "ERROR: Timeout!"
            Exit Function
        End If
    Wend

    OkCreatedPDF = True
    StatusLabel.Caption = "The PDF " & sPdfFileName & " was generated!"
End Function

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...