1

好的,我正在使用 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 或任何东西.invoke。如果我是对的,invoke 是什么触发了主线程上的事件?我已经疯狂地搜索了 msdn 页面,但他们的修复并没有修复我的问题。

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

4

0 回答 0