private void SetCoverArtImageThreaded(string message, MusicFileMetaData metaData, string tooltipText, string musicPath)
        {
            // Thread to set the cover artwork image, because this can take some unwanted time when
            // checking lots of music files to see if they're already uploaded to YouTube Music
            // and we want to cancel the thread if it's still running on the next track check
            // and just display the default cover artwork

            try
            {
                if (_artworkFetchThread != null)
                {
                    try
                    {
                        _artworkFetchThread.Abort();
                    }
                    catch
                    { }

                    if (MainForm.ArtworkImage != null &&
                        ImageHelper.IsSameImage(MainForm.ArtworkImage,
                                                Properties.Resources.default_artwork))
                    {
                        MainForm.SetUploadingMessage(
                            message,
                            metaData,
                            tooltipText,
                            null,
                            false);
                    }
                    else
                    {
                        if (string.IsNullOrEmpty(musicPath))
                        {
                            MainForm.SetUploadingMessage(
                                message,
                                metaData,
                                tooltipText,
                                null,
                                true);
                        }
                        else
                        {
                            MainForm.SetUploadingMessage(
                                message,
                                metaData,
                                tooltipText,
                                Properties.Resources.default_artwork,
                                true);
                        }
                    }
                }

                if (!string.IsNullOrEmpty(musicPath))
                {
                    ThreadPool.QueueUserWorkItem(delegate
                    {
                        var image = MainForm.MusicDataFetcher.GetAlbumArtwork(musicPath).Result;
                        if (image != null && MainForm.ArtworkImage != null && ImageHelper.IsSameImage(image, MainForm.ArtworkImage))
                        {
                            MainForm.SetUploadingMessage(
                                message,
                                metaData,
                                tooltipText,
                                null,
                                false);
                        }
                        else
                        {
                            MainForm.SetUploadingMessage(
                                message,
                                metaData,
                                tooltipText,
                                image,
                                true);
                        }
                    });
                }
            }
            catch { }
        }
        private async Task SetUploadDetails(
            string message,
            string musicPath,
            bool setArtworkImage,
            bool useMusicBrainzFallback)
        {
            try
            {
                string            tooltipText = string.Empty;
                MusicFileMetaData metaData    = null;

                if (string.IsNullOrEmpty(musicPath))
                {
                    tooltipText = "Idle";
                }
                else
                {
                    metaData = MainForm.MusicDataFetcher.GetMusicFileMetaData(musicPath, out tooltipText);
                }

                if (!setArtworkImage)
                {
                    // just set the text

                    MainForm.SetUploadingMessage(
                        message,
                        metaData,
                        tooltipText,
                        null,
                        false);

                    await Task.Run(() => { });
                }
                else
                {
                    if (!useMusicBrainzFallback)
                    {
                        if (_artworkFetchThread != null)
                        {
                            try
                            {
                                _artworkFetchThread.Abort();
                            }
                            catch
                            { }
                        }

                        if (string.IsNullOrEmpty(musicPath))
                        {
                            MainForm.SetUploadingMessage(
                                message,
                                metaData,
                                tooltipText,
                                null,
                                true);
                        }
                        else
                        {
                            var image = await MainForm.MusicDataFetcher.GetAlbumArtwork(musicPath, false);

                            if (image != null && MainForm.ArtworkImage != null && ImageHelper.IsSameImage(image, MainForm.ArtworkImage))
                            {
                                MainForm.SetUploadingMessage(
                                    message,
                                    metaData,
                                    tooltipText,
                                    null,
                                    false);
                            }
                            else
                            {
                                MainForm.SetUploadingMessage(
                                    message,
                                    metaData,
                                    tooltipText,
                                    image,
                                    true);
                            }
                        }
                    }
                    else
                    {
                        // Only used for when 'uploading' a track - Will attempt to get info for MusicBrainz (i.e. cover image)
                        SetCoverArtImageThreaded(message, metaData, tooltipText, musicPath);
                    }

                    await Task.Run(() => { });
                }
            }
            catch (Exception e)
            {
                Logger.Log(e, "SetUploadDetails");
            }
        }