わかりました、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が機能していることを知っています。