public static IToplistBrowse WaitForCompletion(this IToplistBrowse browse) { var reset = new ManualResetEvent(browse.IsComplete); EventHandler <UserDataEventArgs> handler = (s, e) => reset.Set(); browse.Completed += handler; reset.WaitOne(); browse.Completed -= handler; return(browse); }
protected void ToplistsMenu() { ConsoleEx.WriteLine("=== Toplist ===", ConsoleColor.Cyan); IToplistBrowse toplistBrowse = Session .Browse(ToplistType.Tracks) .WaitForCompletion(); for (int i = 0; i < toplistBrowse.Tracks.Count; i++) { ITrack track = toplistBrowse.Tracks[i]; ConsoleEx.Write("{0:00} : {1,-20}", ConsoleColor.White, (i + 1), ConsoleEx.Truncate(track.Name, 20)); ConsoleEx.Write(" {0,-16}", ConsoleColor.Gray, ConsoleEx.Truncate(track.Album.Artist.Name, 15)); ConsoleEx.WriteLine(" {0,-16}", ConsoleColor.DarkGray, ConsoleEx.Truncate(track.Album.Name, 15)); } }