diff --git a/Vocaluxe/Base/Server/CVocaluxeServer.cs b/Vocaluxe/Base/Server/CVocaluxeServer.cs index 42e1e63a..6bce25f9 100644 --- a/Vocaluxe/Base/Server/CVocaluxeServer.cs +++ b/Vocaluxe/Base/Server/CVocaluxeServer.cs @@ -624,11 +624,18 @@ namespace Vocaluxe.Base.Server return _GetSongInfo(song, true); } + + private static SSongInfo[] songInfoCache = null; public static SSongInfo[] GetAllSongs() { - List songs = CSongs.Songs; - return (from s in songs + if (songInfoCache == null) + { + List songs = CSongs.Songs; + songInfoCache = (from s in songs select _GetSongInfo(s, false)).AsParallel().ToArray(); + } + + return songInfoCache; } public static string GetMp3Path(int songId)