Sie behalten die IDisposable
, die von Subscribe
zurückgegeben wurde, und Dispose
auf es nennen.
Es kann gut sein, eine Möglichkeit, die Rx IDisposable
-basierte Abmelde der Integration mit CancellationToken
aus der Box, aber nur Dispose
ruft ein Anfang wäre. (Sie können immer nur eine Fortsetzung des Widerruf Token registrieren zu nennen verfügen ...)
Hier ist ein kurzes, aber vollständiges Beispiel zu demonstrieren:
using System;
using System.Reactive.Concurrency;
using System.Reactive.Linq;
using System.Threading;
class Program
{
static void Main(string[] args)
{
var instance = ThreadPoolScheduler.Instance;
var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5));
var disposable = Observable
.Interval(TimeSpan.FromSeconds(0.5), instance)
.Subscribe(_ => Console.WriteLine(DateTime.UtcNow));
cts.Token.Register(() => disposable.Dispose());
Thread.Sleep(10000);
}
}
Schön, hatte das nicht gesehen. (Beide arbeiten, natürlich ... Ich vermute, dass die Abonnieren Überlastungen rufen Sie einfach auf die gleiche Art und Weise registrieren :) –
@JonSkeet Ja, alle CancellationToken Erweiterungsmethoden tun, ist registrieren Entsorgen wie Sie haben. –