public void StopScannListener() { if (scanListener != null) { scanListener.UnSubscribeForBarcodeEvents(); if (ScanListenerObject.ListConnectedScanners != null) { foreach (Scanner scanner in ScanListenerObject.ListConnectedScanners) { SetSpecificAttribute(scanner, (int)AppDefs.LEDCode.Led3On); SetSpecificAttribute(scanner, (int)AppDefs.BeepCode.OneLongLow); } SubscribeScanEvent(); } else { FailedAppEvent?.Invoke("AppFailed"); } ScanListenerObject = scanListener = null; COM.CloseConnection(); Log.Write("Oblect ScnListener is deleted, COM object is closed", this); try { threadDictionary["BackgroundScannersThread"].Abort(); FailedAppEvent?.Invoke("AppFailed"); } catch { } } else { FailedAppEvent?.Invoke("AppFailed"); } }