等待超时创建文件
Wait for a file to be created with a timeout
我正在尝试制作一个 vb6 程序来等待创建 pdf 文件。
现在我只是像那样暂停 3 秒 :
startTime = Time
endTime = TimeValue(startTime) + TimeValue(TimeSerial(0,0,3))
While endTime > Time
Wend
If FSO.FileExists(sPdfFileName) Then
OkCreatedPDF = True
Else
OkCreatedPDF = False
End If
但有时创建 pdf 需要超过 3 秒的时间。所以我想等待文件创建但超时(说 10 秒)。我不想延长等待时间,因为这将是 运行 一千次。
您可以使用 Sleep
1000 毫秒,这意味着它将等待 1 秒,直到它保持 运行 代码,使用一个名为 sTimeout
的标志变量,您可以定义它会 运行 循环几秒钟,我硬编码 10 但你可以创建另一个变量来设置秒数,每一秒它都会 运行 循环并增加 sTimeout
一个,一旦达到 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
我现在没有收到 VB6 环境...但无论如何...我对您的原始代码做了一些调整。如果无法使用 API 方法,您可以试试这个:
startTime = Time
endTime = TimeValue(startTime) + TimeValue(TimeSerial(0,0,10))
While endTime > Time
If FSO.FileExists(sPdfFileName) Then
OkCreatedPDF = True
Exit While
Else
OkCreatedPDF = False
DoEvents()
End If
Wend
我正在尝试制作一个 vb6 程序来等待创建 pdf 文件。 现在我只是像那样暂停 3 秒 :
startTime = Time
endTime = TimeValue(startTime) + TimeValue(TimeSerial(0,0,3))
While endTime > Time
Wend
If FSO.FileExists(sPdfFileName) Then
OkCreatedPDF = True
Else
OkCreatedPDF = False
End If
但有时创建 pdf 需要超过 3 秒的时间。所以我想等待文件创建但超时(说 10 秒)。我不想延长等待时间,因为这将是 运行 一千次。
您可以使用 Sleep
1000 毫秒,这意味着它将等待 1 秒,直到它保持 运行 代码,使用一个名为 sTimeout
的标志变量,您可以定义它会 运行 循环几秒钟,我硬编码 10 但你可以创建另一个变量来设置秒数,每一秒它都会 运行 循环并增加 sTimeout
一个,一旦达到 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
我现在没有收到 VB6 环境...但无论如何...我对您的原始代码做了一些调整。如果无法使用 API 方法,您可以试试这个:
startTime = Time
endTime = TimeValue(startTime) + TimeValue(TimeSerial(0,0,10))
While endTime > Time
If FSO.FileExists(sPdfFileName) Then
OkCreatedPDF = True
Exit While
Else
OkCreatedPDF = False
DoEvents()
End If
Wend