重载决策失败,因为无法使用这些参数调用可访问的“Sleep”

时间:2017-04-12 10:52:04

标签: vb.net thread-sleep

我有以下代码:

Dim MyFile As String
MyFile = ("C:\Book1.xlsx")
Dim infoReader As System.IO.FileInfo
infoReader = My.Computer.FileSystem.GetFileInfo(MyFile)
Threading.Thread.Sleep(infoReader.Length / 1000)

如何解决以下错误:

enter image description here

3 个答案:

答案 0 :(得分:0)

您需要将您的号码(双倍)转换为timeSpan:

Dim sleepTime As Timespan = TimeSpan.FromSeconds(infoReader.Lenth/1000) 

答案 1 :(得分:0)

除非infoReader.Length / 1000属性类型为Double,否则除法运算(FileInfo.Length)是浮点数(Long)。

另一方面,您最有可能想要使用的Threading.Thread.Sleep()超载需要Int参数。

明确地将除法结果转换为Int(文件不是太大):

Threading.Thread.Sleep(CInt(infoReader.Length / 1000))

或者使用接受TimeSpan的{​​{1}}方法使用接受FromMilliseconds的第二次重载:

Double

答案 2 :(得分:0)

使用整数除法除以它。 sleep函数不会将double作为参数。

Threading.Thread.Sleep(infoReader.Length \ 1000)