public void Handle(ISerialPacket packet) { lock (syncRoot) { if (State == InstructionState.Emit) { try { DoHandle(packet); } catch (Exception ex) { Log.Error(string.Format("{0} - {1}", ErrorCode.InstructionHandleError, Name), ex); } finally { timing.Stop(); var waitTime = Delay - timing.ElapsedMilliseconds; if (waitTime > 0) { Thread.Sleep(TimeSpan.FromMilliseconds(waitTime)); } Monitor.Pulse(syncRoot); } } } }
public void Handle(ISerialPacket packet) { lock (syncRoot) { if (State == InstructionState.Emit) { try { DoHandle(packet); } catch (Exception ex) { Log.Error(string.Format("{0} - {1}", ErrorCode.InstructionHandleError, Name), ex); } finally { timing.Stop(); var waitTime = Delay - timing.ElapsedMilliseconds; if (waitTime > 0) Thread.Sleep(TimeSpan.FromMilliseconds(waitTime)); Monitor.Pulse(syncRoot); } } } }
protected override void DoHandle(ISerialPacket packet) { throw new NotImplementedException(); }
protected abstract void DoHandle(ISerialPacket packet);