public async Task ShowNotificationAsync() { if (this.notification != null) { this.notification.DoubleClicked -= ShowMainWindow; } try { if (this.notification != null) { this.notification.Disable(); } } catch (Exception ex) { LogClient.Error("Error while trying to disable the notification. Exception: {0}", ex.Message); } try { byte[] artworkData = null; if (this.playbackService.HasCurrentTrack) { artworkData = await this.metadataService.GetArtworkAsync(this.playbackService.CurrentTrack.Value.Path); } Application.Current.Dispatcher.Invoke(() => { this.notification = new NotificationWindow(this.playbackService.CurrentTrack.Value, artworkData, (NotificationPosition)SettingsClient.Get <int>("Behaviour", "NotificationPosition"), SettingsClient.Get <bool>("Behaviour", "ShowNotificationControls"), SettingsClient.Get <int>("Behaviour", "NotificationAutoCloseSeconds")); this.notification.DoubleClicked += ShowMainWindow; this.notification.Show(); }); } catch (Exception ex) { LogClient.Error("Error while trying to show the notification. Exception: {0}", ex.Message); } }