重载解析失败,因为无法使用这些参数调用可访问的“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
的第二个重载,使用接受Double
的FromMilliseconds
方法:
Threading.Thread.Sleep(TimeSpan.FromMilliseconds(infoReader.Length / 1000))
用整数除法除法。 sleep 函数不接受 double 作为参数。
Threading.Thread.Sleep(infoReader.Length \ 1000)
我有以下代码:
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
的第二个重载,使用接受Double
的FromMilliseconds
方法:
Threading.Thread.Sleep(TimeSpan.FromMilliseconds(infoReader.Length / 1000))
用整数除法除法。 sleep 函数不接受 double 作为参数。
Threading.Thread.Sleep(infoReader.Length \ 1000)