public static BHTController Create(TextBox labelScan) { if (_BHTControllerOpt == null) { lock (syncLock) { if (_BHTControllerOpt == null) { _BHTControllerOpt = new BHTControllerOpt(); if (_BHTControllerOpt.MyScanner == null) { lock (syncLockScanner) { _BHTControllerOpt.MyScanner = new Scanner(); _BHTControllerOpt.MyScanner.RdMode = _BHTControllerOpt.MyScanner.DEFAULT_RD_MODE; _BHTControllerOpt.MyScanner.RdType = _BHTControllerOpt.MyScanner.DEFAULT_RD_TYPE; _BHTControllerOpt.MyScanner.OnDone += _BHTControllerOpt.MyScanner_OnDone; _BHTControllerOpt.LabelScan = labelScan; } } } } } return(_BHTControllerOpt); }
public static BHTController Create() { // Support multithreaded applications through // 'Double checked locking' pattern which (once // the instance exists) avoids locking each // time the method is invoked if (_BHTControllerOpt == null) { lock (syncLock) { if (_BHTControllerOpt == null) { _BHTControllerOpt = new BHTControllerOpt(); } } } return(_BHTControllerOpt); }