-2
这是我的代码;时间减去错误
Option Strict On
Public Class Form1
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
Dim Start As DateTime
Start = DateTime.Now
Threading.Thread.Sleep(22000)
If Date.Now.Subtract(Start).TotalMilliseconds < 28000 Then
Threading.Thread.Sleep(28000 - Date.Now.Subtract(Start).TotalMilliseconds)
End If
End Sub
End Class
这里是错误图片;
28000是int,TotalMilliseconds是double。你不能那样减去。什么是22000和28000? – NoviceProgrammer
表达式的类型(整数 - 双精度)是双精度。使用Option Strict On实际上不合法,必须明确说明Double如何转换为Sleep()所需的整数值。有不止一种方法,舍入与截断。这里没什么关系,因为你不用担心半个毫秒的问题,只需使用'CInt()'。 –
这是okey吗? 'Threading.Thread.Sleep(28000 - CInt(Date.Now.Subtract(Start).TotalMilliseconds))' –