public List <debug_event> get_events(int least_id) { if (read_thread_ == null) { read_thread_ = new Thread(read_events_thread) { IsBackground = true }; read_thread_.Start(); } lock (this) { if (events_.Count > 0) { Debug.Assert(events_.Last().unique_id == events_.Count - 1); } if (least_id < events_.Count) { return(events_.GetRange(least_id, events_.Count - least_id)); } else { return(new List <debug_event>()); } } }