所以我有一个问题,当试图在计时器上调用Skype API时它什么都没有,我只是试图在循环中读取消息并在我的控制台中显示它们,但是在计时器滴答声中,没有任何反应。但是,如果我把计时器刻度代码放在main中它可以正常工作。这是我的代码:
Imports SKYPE4COMLib
Imports System.Timers.Timer
Module main
Dim oSkype As New SKYPE4COMLib.Skype
Dim aUser = oSkype.User("echo123")
Dim aChat = oSkype.Messages(aUser.Handle)
Dim tmr As New Timers.Timer
Sub Main()
tmr.AutoReset = True
tmr.Interval = 1000
AddHandler tmr.Elapsed, AddressOf tmrTick
tmr.Enabled = True
Console.ReadLine()
End Sub
Public Sub tmrTick(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs)
For Each aMessages In aChat
Console.WriteLine(aMessages.FromHandle & ": " & aMessages.Body)
Next
Console.WriteLine("")
End Sub
End Module
谢谢, 亚当
答案 0 :(得分:0)
定时器吞下异常,您可能在定时器代码中遇到异常,很可能是跨线程异常。尝试设置visual studio以打破异常(调试>例外)并查看是否有任何结果。
如果确实遇到跨线程异常,则无法在线程池上运行System.timer计时器。在这种情况下,您应该使用ui友好计时器,例如来自winforms / wpf或专用线程的计时器