public void PlayTrack(MediaLibrary.Track track, Action<MediaState, object, Exception> callback, object state) { lock (_syncLock) { Tuple<Action<MediaState, object, Exception>, object> innerState = new Tuple<Action<MediaState, object, Exception>, object>(callback, state); QueueRequest(new PlayTrackDelegate(PlaybackServiceClient.PlayTrackAsync), new PlayTrackRequest(track.ConvertToTrack()), innerState); } }