谁能解释为什么以下代码在某些 Win7 PC 上有效,但在某些 PC 上我得到一个 MissingMethodException 并且永远不会调用 Timer.Elapsed 事件。
Private Sub _timer2_Elapsed(ByVal sender As Object, ByVal e As System.EventArgs) Handles _timer2.Elapsed
_timer2.Enabled = False
Dispatcher.Invoke(Sub()
HandleSingleKeyPress(-1)
End Sub)
End Sub
经过一番调查,我发现以下代码效果更好:-
Public Delegate Sub InvokedSubDelegate()
Private Sub _timer2_Elapsed(ByVal sender As Object, ByVal e As System.EventArgs) Handles _timer2.Elapsed
_timer2.Enabled = False
Dispatcher.Invoke(New InvokedSubDelegate(Sub()
HandleSingleKeyPress(-1)
End Sub))
End Sub
不知道为什么第一种方法有时只有效,但希望该解决方案可以帮助其他有类似问题的人。
杰瑞