我正在为摩托罗拉条形码扫描仪开发,似乎我遇到了一些线程问题。当我设置barcode_OnRead()
为来自扫描仪的输入的处理程序并在同一流程中操作扫描仪的状态时,我NullPointerException
很快就会得到一个。例如,这将导致问题:
private void barcode_OnRead(object sender, Symbol.Barcode.ReaderData readerData)
{
this.barcode.EnableScanner = false;
}
在我看来,这像是一个线程问题,但我对 C# 不是很精通,而且我不知道如何在不同的线程(例如 UI 线程)上运行某事?
编辑:
仅上面的代码就会触发问题。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()