我有以下代码:重载决策失败,因为没有访问`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)
我该如何解决以下错误:
我有以下代码:重载决策失败,因为没有访问`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)
我该如何解决以下错误:
您需要将您的号码(双倍)转换为timeSpan:
Dim sleepTime As Timespan = TimeSpan.FromSeconds(infoReader.Lenth/1000)
结果lt分割操作(infoReader.Length/1000
)是一个浮点数(在我们的例子中为Double
,因为FileInfo.Length
属性的类型为Long
)。
另一方面,您最想使用的Threading.Thread.Sleep()
过载期望参数为Int
。
角色除法结果来Int
明确(是文件不是太大):
Threading.Thread.Sleep(CInt(infoReader.Length/1000))
或者使用第二过载接受TimeSpan
,使用FromMilliseconds
方法,该方法接受Double
:
Threading.Thread.Sleep(TimeSpan.FromMilliseconds(infoReader.Length/1000))
这是不对的。 '/'使用'Double's来操作,如果你之后使用'''',则只会是'Long'。你甚至可以在他们的屏幕截图中看到它 –
@AFriend:是的,你是对的。与C#分割运算符混合在一起。删除答案... –
不要删除它,这是一个很好的答案!只需编辑一下:) –
用整数除法它。睡眠功能不需要双重参数。
Threading.Thread.Sleep(infoReader.Length \ 1000)
使用显式转换为所需的类型。这应该是可以从错误描述中理解的,毕竟... – Arvo