private static async Task LoadAllAudioInfoCandidates(AudioInfo[] audioInfoCandidates, Action<AudioInfo> callback) { foreach (var candidate in audioInfoCandidates) { FastConsole.WriteInfo($"开始获取文件\"{Path.GetFileName(candidate.Path)}\"的网易云音乐ID。"); TrackInfo trackInfo; try { trackInfo = await SearchTrackAsync(candidate.Album, candidate.Track); } catch (Exception ex) { FastConsole.WriteException(ex); trackInfo = null; } if (trackInfo is null) { FastConsole.WriteWarning($"无法找到文件\"{Path.GetFileName(candidate.Path)}\"的网易云音乐ID!"); } else { FastConsole.WriteInfo($"已获取文件\"{Path.GetFileName(candidate.Path)}\"的网易云音乐ID: {trackInfo.Id}。"); candidate.TrackInfo = new TrackInfo(candidate.Track, candidate.Album, trackInfo.Id); _database.TrackInfos.Add(candidate.TrackInfo); } callback?.Invoke(candidate); FastConsole.WriteNewLine(); } }