[英]No accessible 'New' accepts this number of arguments - Error
我有这段代码
Dim _timer As System.Threading.Timer
Public Sub RunTimer2()
_timer = New System.Threading.Timer(onSave(),
Nothing,
TimeSpan.FromSeconds(5),
TimeSpan.FromSeconds(5))
End Sub
我得到错误重载解析失败,因为没有可访问的“ New”接受此数目的参数。 对于我试图创建计时器的行。 虽然我可以在msdn和库中的文档中看到它具有我使用的4种可能的类型参数。 我不明白......
您没有将委托传递给onSave
函数。 您正在调用onSave
函数,并将其返回值传递给Timer
构造函数。 您需要创建该函数的委托并传递它,如下所示:
Dim _timer As System.Threading.Timer
Public Sub RunTimer2()
_timer = New System.Threading.Timer(New TimerCallback(AddressOf onSave),
Nothing,
TimeSpan.FromSeconds(5),
TimeSpan.FromSeconds(5))
End Sub
或者,如果您这样做,VB将自动为您指出委托类型:
Dim _timer As System.Threading.Timer
Public Sub RunTimer2()
_timer = New System.Threading.Timer(AddressOf onSave,
Nothing,
TimeSpan.FromSeconds(5),
TimeSpan.FromSeconds(5))
End Sub
要在vb.net中声明计时器,您可以:
Private MyTimer As System.Threading.Timer
MyTimer = New System.Threading.Timer(AddressOf MyTimer_Tick, Nothing, RunEveryNMinutes * 60000, RunEveryNMinutes * 60000)
Private Sub MyTimer_Tick(ByVal state As Object)
WriteEventLog("Timertick")
End Sub
5秒后启动计时器,每5秒调用一次
Private timer As System.Threading.Timer = New System.Threading.Timer(AddressOf DoWhatever, Nothing, New TimeSpan(0, 0, 5, 0), New TimeSpan(0, 0, 5, 0))
Private Sub dowhatever(sender As Object, e As Timers.ElapsedEventArgs)
' Do stuff
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.