/// <summary> /// Pauses and rewinds the media /// This command invalidates all queued commands /// </summary> /// <returns>The awaitable command</returns> public async Task StopAsync() { StopCommand command = null; lock (SyncLock) { command = Commands.FirstOrDefault(c => c.CommandType == MediaCommandType.Stop) as StopCommand; if (command == null) { command = new StopCommand(this); EnqueueCommand(command); } } await command.TaskContext; }
/// <summary> /// Pauses and rewinds the media /// </summary> /// <returns></returns> public async Task Stop() { StopCommand command = null; lock (SyncLock) { command = Commands.FirstOrDefault(c => c.CommandType == MediaCommandType.Stop) as StopCommand; if (command == null) { command = new StopCommand(this); Commands.Add(command); } } await command.Promise; }
/// <summary> /// Pauses and rewinds the media /// </summary> public void Stop() { StopCommand command = null; lock (SyncLock) { command = Commands.FirstOrDefault(c => c.CommandType == MediaCommandType.Stop) as StopCommand; if (command == null) { command = new StopCommand(this); EnqueueCommand(command); } } WaitFor(command); }