Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

IObservable<T>.Subscribe-Methode: (IObserver<T>)

.NET Framework (current version)
 

Veröffentlicht: Oktober 2016

Benachrichtigt den Anbieter, dass ein Beobachter Benachrichtigungen zu empfangen hat.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

IDisposable Subscribe(
	IObserver<T> observer
)

Parameter

observer
Type: System.IObserver<T>

Das Objekt, das Benachrichtigungen zu empfangen hat.

Rückgabewert

Type: System.IDisposable

Ein Verweis auf eine Schnittstelle, über die Beobachter den Empfang von Benachrichtigungen beenden können, bevor der Anbieter deren Versand einstellt.

Die Subscribe Methode muss aufgerufen werden, um ein Beobachter für Pushbenachrichtigungen registrieren. Eine typische Implementierung der der Subscribe Methode bewirkt Folgendes:

  • Es speichert einen Verweis auf den Beobachter in ein Auflistungsobjekt, z. B. eine List<T> Objekt.

  • Es gibt einen Verweis auf eine IDisposable Schnittstelle. Dadurch, dass Beobachter Kündigen des Abonnements (d. h. den Empfang von Benachrichtigungen beenden), bevor der Anbieter hat Versand einstellt und des Abonnenten aufgerufen OnCompleted Methode.

Zu einem beliebigen Zeitpunkt einer bestimmten Instanz einer IObservable<T> Implementierung ist verantwortlich für das Behandeln aller Abonnements, und benachrichtigen alle Abonnenten. Es sei denn, die Dokumentation für einen bestimmten IObservable<T> Implementierung gibt hingegen an Beobachter sollte keine Annahmen über die IObservable<T> Implementierung, z. B. die Reihenfolge der Benachrichtigungen, die mehrere Beobachter erhalten.

Das folgende Beispiel veranschaulicht die Subscribe Methode für eine Anwendung, die Breiten- und Längengrad Informationen meldet. Definiert eine IList<T> Auflistungsobjekt, das Verweise auf alle Beobachter speichert. Es gibt auch eine private Klasse mit dem Namen Unsubscriber , implementiert die IDisposable Schnittstelle und ermöglicht es Abonnenten für den Empfang von ereignisbenachrichtigungen beenden. Finden Sie im Beispielabschnitt von der IObservable<T> Thema für das vollständige Beispiel.

private List<IObserver<Location>> observers;

public IDisposable Subscribe(IObserver<Location> observer) 
{
   if (! observers.Contains(observer)) 
      observers.Add(observer);
   return new Unsubscriber(observers, observer);
}

private class Unsubscriber : IDisposable
{
   private List<IObserver<Location>>_observers;
   private IObserver<Location> _observer;

   public Unsubscriber(List<IObserver<Location>> observers, IObserver<Location> observer)
   {
      this._observers = observers;
      this._observer = observer;
   }

   public void Dispose()
   {
      if (_observer != null && _observers.Contains(_observer))
         _observers.Remove(_observer);
   }
}

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 4.0
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: