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

Overload resolution failed because no accessible `Sleep` can be called with these arguments

我有以下代码:

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)

如何解决以下错误:

您需要将数字(双精度)转换为时间跨度:

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

除法运算 (infoReader.Length / 1000) 的结果是一个浮点数(Double 在我们的例子中,因为 FileInfo.Length 属性 的类型是 Long ).

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

将除法结果显式转换为Int(文件不是太大):

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

或者使用接受TimeSpan的第二个重载,使用接受DoubleFromMilliseconds方法:

Threading.Thread.Sleep(TimeSpan.FromMilliseconds(infoReader.Length / 1000))

用整数除法除法。 sleep 函数不接受 double 作为参数。

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