/// <summary> /// Aktiviert den primären Sender. /// </summary> /// <param name="feedSet">Die Verwaltung der Sender.</param> /// <param name="sourceName">Der Name einer Quelle.</param> /// <returns>Gesetzt, wenn der Sender aktiviert wurde.</returns> public static bool TryPrimary(this IFeedSet feedSet, string sourceName) { // Synchronize using (var waiter = new ManualResetEvent(false)) { // Waiter method Action <IFeed, bool> signal = (feed, visible) => { if (visible) { waiter.Set(); } }; // Attach wait method feedSet.PrimaryViewVisibilityChanged += signal; try { // Process var started = feedSet.TryStartPrimaryFeed(sourceName); // Synchronize if (started) { Assert.IsTrue(waiter.WaitOne(1000), "timeout"); } // Report return(started); } finally { // Detach waiter feedSet.PrimaryViewVisibilityChanged -= signal; } } }