1

わかりました、vb.net dll クラスを使用しています (フォーム アプリケーションではありません)。

このクラスでは、タイマーを作成するメソッドを使用しており、最後にイベントをスローするメソッドを呼び出します。

timerDriver = New System.Timers.Timer()

timerDriver.Interval = 500

timerDriver.Enabled = True

AddHandler timerDriver.Elapsed, AddressOf DriverLicenseInTray

プロセスの一部を、あたかも機能しているかのように説明します

したがって、ユーザーはスキャナーを起動する .asp ページのボタンを押します。スキャナーが開始されると、タイマー プロセスはページをロックアウトせずに常にリッスンします (基本的に、このプロセスはユーザーが行っていることには影響しません)。現在、ソフトウェアはカードがこのスキャナに挿入されるのを監視しています。これが true になるとすぐに、カードを処理するメソッドが呼び出されます。カードが処理された後、RaiseEvent ProcessCard適切なイベント ハンドラーを持つ .asp ページにイベントをスローする呼び出しが行われます。

私が抱えている問題はRaiseEvent. タイマーが原因で、間違ったスレッドで発生しています。これを修正する方法を知っている人はいますか?

検索したところ、おそらくデリゲートを使用する必要があることがわかりましたが、Me.Invokeまたは何か.invokeはありません。私が正しければ、呼び出しはメインスレッドでイベントを発生させるものですか? 私は狂ったようにmsdnページを検索しましたが、それらの修正は私のものを修正していません。

タイマーの前にメインメソッドでそれをスローすると、.aspページがそれをキャッチするため、.aspへのRaiseEventが機能していることを知っています。

4

0 に答える 0