Motorola のバーコード スキャナ用に開発していますが、スレッドの問題が発生しているようです。スキャナーからの入力のハンドラーとして設定barcode_OnRead()
し、同じフローでスキャナーの状態を操作すると、NullPointerException
すぐに後で取得されます。たとえば、これにより問題が発生します。
private void barcode_OnRead(object sender, Symbol.Barcode.ReaderData readerData)
{
this.barcode.EnableScanner = false;
}
スレッドの問題のように思えますが、私は C# にあまり精通しておらず、別のスレッド (たとえば UI スレッド) で sth を実行する方法がわかりません。
編集:
上記のコードだけで問題が発生します。その時でthis.barcode
はありません。null
例外からのスタック トレース:
at Barcode.Barcode.SetScanParameters()
at Barcode.Barcode.Reader_ReadNotify(Object sender, EventArgs e)
at System.Windows.Forms.Control.TASK.Invoke()
at System.Windows.Forms.Control._InvokeAll()
at System.Windows.Forms.Control.WnProc(WM wm, Int32 wParam, Int32 lParam)
at System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam)
at Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)
at System.Windows.Forms.Application.Run(Form fm)
at AppName.Program.Main()