public static async Task FetchAsync(string artist, string album, string filePath, bool online = true) { var tname = ThumbnailManager.FormatAlbumCacheName(artist, album); Task task; bool remove; lock (_downloadTasks) { if (remove = !_downloadTasks.TryGetValue(tname, out task)) { task = InternalFetchAlbumAsync(artist, album, filePath, online); _downloadTasks.Add(tname, task); } } await task; if (remove) { lock (_downloadTasks) { _downloadTasks.Remove(tname); } } }
public static async void Fetch(string artist, string album, string filePath, bool online = true) { var tname = ThumbnailManager.FormatAlbumCacheName(artist, album); Task task; lock (_downloadTasks) { if (_downloadTasks.ContainsKey(tname)) { return; } else { task = InternalFetchAlbumAsync(artist, album, filePath, online); _downloadTasks.Add(tname, task); } } await task; lock (_downloadTasks) { _downloadTasks.Remove(tname); } }