public async Task Play(EZ_B.Classes.RecordingEvent[] recordingEvents, PlayDirectionEnum playDirection) { IOrderedEnumerable <Classes.RecordingEvent> recordingEventList; if (playDirection == PlayDirectionEnum.Forward) { recordingEventList = from m in recordingEvents orderby m.MS ascending select m; } else { recordingEventList = from m in recordingEvents orderby m.MS descending select m; } int lastMS = 0; foreach (EZ_B.Classes.RecordingEvent recordingEvent in recordingEventList) { if (lastMS == 0) { lastMS = recordingEvent.MS; } await Task.Delay(Math.Abs(recordingEvent.MS - lastMS)); lastMS = recordingEvent.MS; DoEvent(recordingEvent); } }
public async void Play(PlayDirectionEnum playDirection) { await Play(_recordingEventList.ToArray(), playDirection); }