使用线程回调通过计时器触发事件

时间:2012-10-25 19:04:33

标签: vb.net multithreading timer delegates callback

好的我正在使用vb.net dll类(不是表单应用程序)。

在这个类中,我使用的是一个创建计时器的方法,最后会调用一个会抛出事件的方法。

timerDriver = New System.Timers.Timer()

timerDriver.Interval = 500

timerDriver.Enabled = True

AddHandler timerDriver.Elapsed, AddressOf DriverLicenseInTray

我要将过程的一部分描述为好像正在运作

因此,用户按下启动扫描仪的.asp页面上的按钮。一旦扫描仪启动,定时器进程就会不停地监听而不会锁定页面(基本上这个过程不会影响用户正在做的任何事情)。现在,该软件正在监视要插入此扫描仪的卡。一旦这是真的,它会调用一个处理卡的方法。处理完卡后,它会调用RaiseEvent ProcessCard将事件抛出到具有相应事件处理程序的.asp页面。

我遇到的问题是RaiseEvent。由于计时器,它在错误的线程上提升它。有谁知道如何解决这个问题?

我已经搜索过,我发现我可能不得不使用委托,但我没有Me.Invoke或anything.invoke。如果我是对的,调用是什么激活主线程上的事件?我疯狂地搜索了msdn页面,他们的修复工作并没有解决我的问题。

我知道.asp的RaiseEvent正在工作,因为如果我在主方法上抛出它,在计时器之前,.asp页面会捕获它。

0 个答案:

没有答案