public abstract void ReportOutputData(ResponseCommand response);
public override void ReportOutputData(ResponseCommand response) { throw (new NotImplementedException()); }
public override void ReportOutputData(ResponseCommand response) { lock (_thread_interlock) CommandQueue.Add(response); }