ReplaySubject<T> Class
Represents an object that is both an observable sequence as well as an observer.
Inheritance Hierarchy
System.Object
System.Reactive.Subjects.ReplaySubject<T>
Namespace: System.Reactive.Subjects
Assembly: System.Reactive (in System.Reactive.dll)
Syntax
'Declaration
Public NotInheritable Class ReplaySubject(Of T) _
Implements ISubject(Of T), ISubject(Of T, T), _
IObserver(Of T), IObservable(Of T), IDisposable
'Usage
Dim instance As ReplaySubject(Of T)
public sealed class ReplaySubject<T> : ISubject<T>,
ISubject<T, T>, IObserver<T>, IObservable<T>, IDisposable
generic<typename T>
public ref class ReplaySubject sealed : ISubject<T>,
ISubject<T, T>, IObserver<T>, IObservable<T>, IDisposable
[<SealedAttribute>]
type ReplaySubject<'T> =
class
interface ISubject<'T>
interface ISubject<'T, 'T>
interface IObserver<'T>
interface IObservable<'T>
interface IDisposable
end
JScript does not support generic types and methods.
Type Parameters
- T
The type.
The ReplaySubject<T> type exposes the following members.
Constructors
Name | Description | |
---|---|---|
ReplaySubject<T>() | Creates a replayable subject. | |
ReplaySubject<T>(Int32) | Initializes a new instance of the ReplaySubject<T> class with the specified buffer size. | |
ReplaySubject<T>(TimeSpan) | Initializes a new instance of the ReplaySubject<T> class with the specified window. | |
ReplaySubject<T>(IScheduler) | Initializes a new instance of the ReplaySubject<T> class with the specified scheduler. | |
ReplaySubject<T>(Int32, IScheduler) | Initializes a new instance of the ReplaySubject<T> class with the specified buffer size and scheduler. | |
ReplaySubject<T>(Int32, TimeSpan) | Initializes a new instance of the ReplaySubject<T> class with the specified buffer size and window. | |
ReplaySubject<T>(TimeSpan, IScheduler) | Initializes a new instance of the ReplaySubject<T> class with the specified window and scheduler. | |
ReplaySubject<T>(Int32, TimeSpan, IScheduler) | Initializes a new instance of the ReplaySubject<T> class with the specified buffer size, window and scheduler. |
Top
Methods
Name | Description | |
---|---|---|
Dispose | Releases all resources used by the current instance of the ReplaySubject<T> class and unsubscribe all observers. | |
Equals | (Inherited from Object.) | |
Finalize | (Inherited from Object.) | |
GetHashCode | (Inherited from Object.) | |
GetType | (Inherited from Object.) | |
MemberwiseClone | (Inherited from Object.) | |
OnCompleted | Notifies all subscribed observers of the end of the sequence. | |
OnError | Notifies all subscribed observers with the exception. | |
OnNext | Notifies all subscribed observers with the value. | |
Subscribe | Subscribes an observer to the subject. | |
ToString | (Inherited from Object.) |
Top
Extension Methods
Name | Description | |
---|---|---|
Aggregate<T>(Func<T, T, T>) | Overloaded. Applies an accumulator function over an observable sequence. (Defined by Observable.) | |
Aggregate<T, TAccumulate>(TAccumulate, Func<TAccumulate, T, TAccumulate>) | Overloaded. Applies an accumulator function over an observable sequence with the specified seed value. (Defined by Observable.) | |
All<T> | Determines whether all elements of an observable sequence satisfies a condition. (Defined by Observable.) | |
Amb<T> | Propagates the observable sequence that reacts first with the specified first and second sequence. (Defined by Observable.) | |
And<T, TRight> | Matches when both observable sequences have an available value. (Defined by Observable.) | |
Any<T>() | Overloaded. Determines whether an observable sequence contains any elements. (Defined by Observable.) | |
Any<T>(Func<T, Boolean>) | Overloaded. Determines whether all elements of an observable sequence satisfies a condition. (Defined by Observable.) | |
AsObservable<T> | Hides the identity of an observable sequence. (Defined by Observable.) | |
AsObserver<T> | Hides the identity of an observer. (Defined by Observer.) | |
AsQbservable<T> | Converts an observable sequence into a queryable observable sequence. (Defined by Qbservable.) | |
AssertEqual<T> | (Defined by Extensions.) | |
Buffer<T>(Int32) | Overloaded. Indicates each element of an observable sequence into consecutive non-overlapping buffers which are produced based on element count information. (Defined by Observable.) | |
Buffer<T>(TimeSpan) | Overloaded. Indicates each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information. (Defined by Observable.) | |
Buffer<T>(Int32, Int32) | Overloaded. Indicates each element of an observable sequence into zero or more buffers which are produced based on element count information. (Defined by Observable.) | |
Buffer<T>(TimeSpan, IScheduler) | Overloaded. Indicates each element of an observable sequence into consecutive non-overlapping buffers which are produced based on timing information. (Defined by Observable.) | |
Buffer<T>(TimeSpan, TimeSpan) | Overloaded. Indicates each element of an observable sequence into zero or more buffers which are produced based on timing information. (Defined by Observable.) | |
Buffer<T>(TimeSpan, Int32) | Overloaded. Indicates each element of an observable sequence into a buffer that’s sent out when either it’s full or a given amount of time has elapsed. (Defined by Observable.) | |
Buffer<T>(TimeSpan, TimeSpan, IScheduler) | Overloaded. Indicates each element of an observable sequence into zero or more buffers which are produced based on timing information. (Defined by Observable.) | |
Buffer<T>(TimeSpan, Int32, IScheduler) | Overloaded. Indicates each element of an observable sequence into a buffer that’s sent out when either it’s full or a given amount of time has elapsed. (Defined by Observable.) | |
Buffer<T, TBufferClosing>(Func<IObservable<TBufferClosing>>) | Overloaded. Indicates each element of an observable sequence into consecutive non-overlapping buffers. (Defined by Observable.) | |
Buffer<T, TBufferOpening, TBufferClosing>(IObservable<TBufferOpening>, Func<TBufferOpening, IObservable<TBufferClosing>>) | Overloaded. Indicates each element of a queryable observable sequence into consecutive non-overlapping buffers. (Defined by Observable.) | |
Catch<T>(IObservable<T>) | Overloaded. Continues an observable sequence that is terminated by an exception with the next observable sequence. (Defined by Observable.) | |
Catch<T, TException>(Func<TException, IObservable<T>>) | Overloaded. Continues an observable sequence that is terminated by an exception of the specified type with the observable sequence produced by the handler. (Defined by Observable.) | |
CombineLatest<T, TSecond, TResult> | Merges two observable sequences into one observable sequence by using the selector function whenever one of the observable sequences produces an element. (Defined by Observable.) | |
Concat<T> | Concatenates two observable sequences. (Defined by Observable.) | |
Contains<T>(T) | Overloaded. Determines whether an observable sequence contains a specified element by using the default equality comparer. (Defined by Observable.) | |
Contains<T>(T, IEqualityComparer<T>) | Overloaded. Determines whether an observable sequence contains a specified element by using a specified System.Collections.Generic.IEqualityComparer<T>. (Defined by Observable.) | |
Count<T> | Returns a Int32 that represents the total number of elements in an observable sequence. (Defined by Observable.) | |
DefaultIfEmpty<T>() | Overloaded. Returns the elements of the specified sequence or the type parameter's default value in a singleton sequence if the sequence is empty. (Defined by Observable.) | |
DefaultIfEmpty<T>(T) | Overloaded. Returns the elements of the specified sequence or the type parameter's default value in a singleton sequence if the sequence is empty. (Defined by Observable.) | |
Delay<T>(TimeSpan) | Overloaded. Indicates the observable sequence by due time with the specified source and dueTime. (Defined by Observable.) | |
Delay<T>(DateTimeOffset) | Overloaded. Indicates the observable sequence by due time with the specified source and dueTime. (Defined by Observable.) | |
Delay<T>(TimeSpan, IScheduler) | Overloaded. Indicates the observable sequence by due time with the specified source, dueTime and scheduler. (Defined by Observable.) | |
Delay<T>(DateTimeOffset, IScheduler) | Overloaded. Indicates the observable sequence by due time with the specified source, dueTime and scheduler. (Defined by Observable.) | |
Distinct<T>() | Overloaded. Returns an observable sequence that contains only distinct elements with a specified source. (Defined by Observable.) | |
Distinct<T>(IEqualityComparer<T>) | Overloaded. Returns an observable sequence that contains only distinct elements according to the comparer. (Defined by Observable.) | |
Distinct<T, TKey>(Func<T, TKey>) | Overloaded. Returns an observable sequence that contains only distinct elements according to the keySelector. (Defined by Observable.) | |
Distinct<T, TKey>(Func<T, TKey>, IEqualityComparer<TKey>) | Overloaded. Returns an observable sequence that contains only distinct elements according to the keySelector. (Defined by Observable.) | |
DistinctUntilChanged<T>() | Overloaded. Returns an observable sequence that contains only distinct contiguous elements with a specified source. (Defined by Observable.) | |
DistinctUntilChanged<T>(IEqualityComparer<T>) | Overloaded. Returns an observable sequence that contains only distinct contiguous elements according to the comparer. (Defined by Observable.) | |
DistinctUntilChanged<T, TKey>(Func<T, TKey>) | Overloaded. Returns an observable sequence that contains only distinct contiguous elements according to the keySelector. (Defined by Observable.) | |
DistinctUntilChanged<T, TKey>(Func<T, TKey>, IEqualityComparer<TKey>) | Overloaded. Returns an observable sequence that contains only distinct contiguous elements according to the keySelector and the comparer. (Defined by Observable.) | |
Do<T>(Action<T>) | Overloaded. Invokes an action for each element in the observable sequence. (Defined by Observable.) | |
Do<T>(IObserver<T>) | Overloaded. Invokes an action for each element in the observable sequence and invokes an action upon exceptional termination of the observable sequence. (Defined by Observable.) | |
Do<T>(Action<T>, Action) | Overloaded. Invokes an action for each element in the observable sequence and invokes an action upon graceful termination of the observable sequence. (Defined by Observable.) | |
Do<T>(Action<T>, Action<Exception>) | Overloaded. Invokes an action for each element in the observable sequence and invokes an action upon exceptional termination of the observable sequence. (Defined by Observable.) | |
Do<T>(Action<T>, Action<Exception>, Action) | Overloaded. Invokes an action for each element in the observable sequence, and invokes an action upon graceful or exceptional termination of the observable sequence. (Defined by Observable.) | |
ElementAt<T> | Returns the element at a specified index in a sequence. (Defined by Observable.) | |
ElementAtOrDefault<T> | Returns the element at a specified index in a sequence or a default value if the index is out of range. (Defined by Observable.) | |
Finally<T> | Invokes a specified action after source observable sequence terminates normally or by an exception. (Defined by Observable.) | |
First<T>() | Overloaded. Returns the first element of an observable sequence with a specified source. (Defined by Observable.) | |
First<T>(Func<T, Boolean>) | Overloaded. Returns the first element of an observable sequence that matches the predicate. (Defined by Observable.) | |
FirstOrDefault<T>() | Overloaded. Returns the first element of an observable sequence, or a default value if no value is found. (Defined by Observable.) | |
FirstOrDefault<T>(Func<T, Boolean>) | Overloaded. Returns the first element of an observable sequence that matches the predicate, or a default value if no value is found. (Defined by Observable.) | |
Foo<T, R> | (Defined by MyExt.) | |
ForEach<T> | Invokes an action for each element in the observable sequence, and blocks until the sequence is terminated. (Defined by Observable.) | |
GetEnumerator<T> | Returns an enumerator that enumerates all values of the observable sequence. (Defined by Observable.) | |
GroupBy<T, TKey>(Func<T, TKey>) | Overloaded. Groups the elements of an observable sequence according to a specified key selector function. (Defined by Observable.) | |
GroupBy<T, TKey>(Func<T, TKey>, IEqualityComparer<TKey>) | Overloaded. Groups the elements of an observable sequence according to a specified key selector function and comparer. (Defined by Observable.) | |
GroupBy<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>) | Overloaded. Groups the elements of an observable sequence and selects the resulting elements by using a specified function. (Defined by Observable.) | |
GroupBy<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>, IEqualityComparer<TKey>) | Overloaded. Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. (Defined by Observable.) | |
GroupByUntil<T, TKey, TDuration>(Func<T, TKey>, Func<IGroupedObservable<TKey, T>, IObservable<TDuration>>) | Overloaded. Groups the elements of an observable sequence according to a specified key selector function. (Defined by Observable.) | |
GroupByUntil<T, TKey, TDuration>(Func<T, TKey>, Func<IGroupedObservable<TKey, T>, IObservable<TDuration>>, IEqualityComparer<TKey>) | Overloaded. Groups the elements of an observable sequence according to a specified key selector function and comparer. (Defined by Observable.) | |
GroupByUntil<T, TKey, TElement, TDuration>(Func<T, TKey>, Func<T, TElement>, Func<IGroupedObservable<TKey, TElement>, IObservable<TDuration>>) | Overloaded. Groups the elements of an observable sequence according to a specified key selector function and selects the resulting elements by using a specified function. (Defined by Observable.) | |
GroupByUntil<T, TKey, TElement, TDuration>(Func<T, TKey>, Func<T, TElement>, Func<IGroupedObservable<TKey, TElement>, IObservable<TDuration>>, IEqualityComparer<TKey>) | Overloaded. Groups the elements of an observable sequence according to a specified key selector function and comparer and selects the resulting elements by using a specified function. (Defined by Observable.) | |
GroupJoin<T, TRight, TLeftDuration, TRightDuration, TResult> | Correlates the elements of two sequences based on overlapping durations, and groups the results. (Defined by Observable.) | |
IgnoreElements<T> | Ignores all values in an observable sequence leaving only the termination messages. (Defined by Observable.) | |
Join<T, TRight, TLeftDuration, TRightDuration, TResult> | Correlates the elements of two sequences based on overlapping durations. (Defined by Observable.) | |
Last<T>() | Overloaded. Returns the last element of an observable sequence with a specified source. (Defined by Observable.) | |
Last<T>(Func<T, Boolean>) | Overloaded. Returns the last element of an observable sequence that matches the predicate. (Defined by Observable.) | |
LastOrDefault<T>() | Overloaded. Returns last element in the observable sequence, or a default value if no value is found. (Defined by Observable.) | |
LastOrDefault<T>(Func<T, Boolean>) | Overloaded. Returns the last element of an observable sequence that matches the predicate, or a default value if no value is found. (Defined by Observable.) | |
Latest<T> | Samples the most recent value in an observable sequence. (Defined by Observable.) | |
LongCount<T> | Returns a Int64 that represents the total number of elements in an observable sequence. (Defined by Observable.) | |
Materialize<T> | Materializes the implicit notifications of an observable sequence as explicit notification values. (Defined by Observable.) | |
Max<T>() | Overloaded. Returns the maximum element in an observable sequence. (Defined by Observable.) | |
Max<T>(IComparer<T>) | Overloaded. Returns the maximum value in an observable sequence according to the specified comparer. (Defined by Observable.) | |
MaxBy<T, TKey>(Func<T, TKey>) | Overloaded. Returns the elements in an observable sequence with the maximum key value. (Defined by Observable.) | |
MaxBy<T, TKey>(Func<T, TKey>, IComparer<TKey>) | Overloaded. Returns the elements in an observable sequence with the maximum key value. (Defined by Observable.) | |
Merge<T>(IObservable<T>) | Overloaded. Merges an observable sequence of observable sequences into an observable sequence. (Defined by Observable.) | |
Merge<T>(IObservable<T>, IScheduler) | Overloaded. Merges two observable sequences into a single observable sequence. (Defined by Observable.) | |
Min<T>() | Overloaded. Returns the minimum element in an observable sequence. (Defined by Observable.) | |
Min<T>(IComparer<T>) | Overloaded. Returns the minimum value in an observable sequence according to the specified comparer. (Defined by Observable.) | |
MinBy<T, TKey>(Func<T, TKey>) | Overloaded. Returns the elements in an observable sequence with the minimum key value. (Defined by Observable.) | |
MinBy<T, TKey>(Func<T, TKey>, IComparer<TKey>) | Overloaded. Returns the elements in an observable sequence with the minimum key value according to the specified comparer. (Defined by Observable.) | |
MostRecent<T> | Samples the most recent value in an observable sequence. (Defined by Observable.) | |
Multicast<T, TResult>(ISubject<T, TResult>) | Overloaded. Returns a connectable observable sequence that upon connection causes the source sequence to push results into the specified subject. (Defined by Observable.) | |
Multicast<T, TIntermediate, TResult>(Func<ISubject<T, TIntermediate>>, Func<IObservable<TIntermediate>, IObservable<TResult>>) | Overloaded. Returns an observable sequence that contains the elements of a sequence produced by multicasting the source sequence within a selector function. (Defined by Observable.) | |
Next<T> | Samples the next value (blocking without buffering) from in an observable sequence. (Defined by Observable.) | |
ObserveOn<T>(SynchronizationContext) | Overloaded. Asynchronously notify observers on the specified synchronization context. (Defined by Observable.) | |
ObserveOn<T>(Control) | Overloaded. (Defined by ControlObservable.) | |
ObserveOn<T>(Dispatcher) | Overloaded. (Defined by DispatcherObservable.) | |
ObserveOn<T>(DispatcherScheduler) | Overloaded. (Defined by DispatcherObservable.) | |
ObserveOn<T>(IScheduler) | Overloaded. Asynchronously notify observers on the specified scheduler. (Defined by Observable.) | |
ObserveOnDispatcher<T> | (Defined by DispatcherObservable.) | |
OnErrorResumeNext<T> | Continues an observable sequence that is terminated normally or by an exception with the next observable sequence. (Defined by Observable.) | |
Publish<T>() | Overloaded. Returns a connectable observable sequence that shares a single subscription to the underlying sequence. (Defined by Observable.) | |
Publish<T>(T) | Overloaded. Returns a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. (Defined by Observable.) | |
Publish<T, TResult>(Func<IObservable<T>, IObservable<TResult>>) | Overloaded. Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence. (Defined by Observable.) | |
Publish<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, T) | Overloaded. Returns a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initialValue. (Defined by Observable.) | |
PublishLast<T>() | Overloaded. Returns a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. (Defined by Observable.) | |
PublishLast<T, TResult>(Func<IObservable<T>, IObservable<TResult>>) | Overloaded. Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence containing only the last notification. (Defined by Observable.) | |
Repeat<T>() | Overloaded. Repeats the observable sequence indefinitely. (Defined by Observable.) | |
Repeat<T>(Int32) | Overloaded. Repeats the observable sequence indefinitely. (Defined by Observable.) | |
Replay<T>() | Overloaded. Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. (Defined by Observable.) | |
Replay<T>(TimeSpan) | Overloaded. Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications within window. (Defined by Observable.) | |
Replay<T>(Int32) | Overloaded. Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying bufferSize notifications. (Defined by Observable.) | |
Replay<T>(IScheduler) | Overloaded. Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. (Defined by Observable.) | |
Replay<T>(TimeSpan, IScheduler) | Overloaded. Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications within window. (Defined by Observable.) | |
Replay<T>(Int32, IScheduler) | Overloaded. Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying bufferSize notifications. (Defined by Observable.) | |
Replay<T>(Int32, TimeSpan) | Overloaded. Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying bufferSize notifications within window. (Defined by Observable.) | |
Replay<T>(Int32, TimeSpan, IScheduler) | Overloaded. Returns a connectable observable sequence that shares a single subscription to the underlying sequence replaying bufferSize notifications within window. (Defined by Observable.) | |
Replay<T, TResult>(Func<IObservable<T>, IObservable<TResult>>) | Overloaded. Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence and starts with initial value. (Defined by Observable.) | |
Replay<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, IScheduler) | Overloaded. Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications. (Defined by Observable.) | |
Replay<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, TimeSpan) | Overloaded. Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications within window. (Defined by Observable.) | |
Replay<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, Int32) | Overloaded. Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying bufferSize notifications. (Defined by Observable.) | |
Replay<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, TimeSpan, IScheduler) | Overloaded. Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying all notifications within window. (Defined by Observable.) | |
Replay<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, Int32, IScheduler) | Overloaded. Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying bufferSize notifications. (Defined by Observable.) | |
Replay<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, Int32, TimeSpan) | Overloaded. Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying bufferSize notifications within window. (Defined by Observable.) | |
Replay<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, Int32, TimeSpan, IScheduler) | Overloaded. Returns an observable sequence that is the result of invoking the selector on a connectable observable sequence that shares a single subscription to the underlying sequence replaying bufferSize notifications within window. (Defined by Observable.) | |
Retry<T>() | Overloaded. Repeats the source observable sequence until it successfully terminates. (Defined by Observable.) | |
Retry<T>(Int32) | Overloaded. Repeats the source observable sequence until it successfully terminates. (Defined by Observable.) | |
Sample<T>(TimeSpan) | Overloaded. Samples the observable sequence at each interval. (Defined by Observable.) | |
Sample<T>(TimeSpan, IScheduler) | Overloaded. Samples the observable sequence at each interval with the specified source, interval and scheduler. (Defined by Observable.) | |
Sample<T, TSample>(IObservable<TSample>) | Overloaded. Samples the observable sequence at sampling ticks with the specified source and sampler. (Defined by Observable.) | |
Scan<T>(Func<T, T, T>) | Overloaded. Applies an accumulator function over an observable sequence and returns each intermediate result with the specified source and accumulator. (Defined by Observable.) | |
Scan<T, TAccumulate>(TAccumulate, Func<TAccumulate, T, TAccumulate>) | Overloaded. Applies an accumulator function over an observable sequence and returns each intermediate result with the specified source, seed and accumulator. (Defined by Observable.) | |
Select<T, TResult>(Func<T, TResult>) | Overloaded. Projects each element of an observable sequence into a new form with the specified source and selector. (Defined by Observable.) | |
Select<T, TResult>(Func<T, Int32, TResult>) | Overloaded. Projects each element of an observable sequence into a new form by incorporating the element’s index with the specified source and selector. (Defined by Observable.) | |
SelectMany<T, TOther>(IObservable<TOther>) | Overloaded. Projects each element of an observable sequence to an observable sequence and flattens the resulting observable sequences into one observable sequence. (Defined by Observable.) | |
SelectMany<T, TResult>(Func<T, IObservable<TResult>>) | Overloaded. Projects each element of an observable sequence to an observable sequence and flattens the resulting observable sequences into one observable sequence. (Defined by Observable.) | |
SelectMany<T, TResult>(Func<T, IEnumerable<TResult>>) | Overloaded. Projects each element of an observable sequence to an observable sequence and flattens the resulting observable sequences into one observable sequence. (Defined by Observable.) | |
SelectMany<T, TResult>(Func<T, IObservable<TResult>>, Func<Exception, IObservable<TResult>>, Func<IObservable<TResult>>) | Overloaded. Projects each element of an observable sequence to an observable sequence and flattens the resulting observable sequences into one observable sequence. (Defined by Observable.) | |
SelectMany<T, TCollection, TResult>(Func<T, IEnumerable<TCollection>>, Func<T, TCollection, TResult>) | Overloaded. Projects each element of an observable sequence to an observable sequence and flattens the resulting observable sequences into one observable sequence. (Defined by Observable.) | |
SelectMany<T, TCollection, TResult>(Func<T, IObservable<TCollection>>, Func<T, TCollection, TResult>) | Overloaded. Projects each element of an observable sequence to an observable sequence and flattens the resulting observable sequences into one observable sequence. (Defined by Observable.) | |
SequenceEqual<T>(IObservable<T>) | Overloaded. Determines whether two sequences are equal by comparing the elements pairwise. (Defined by Observable.) | |
SequenceEqual<T>(IObservable<T>, IEqualityComparer<T>) | Overloaded. Determines whether two sequences are equal by comparing the elements pairwise using a specified equality comparer. (Defined by Observable.) | |
Single<T>() | Overloaded. Returns the only element of an observable sequence and throws an exception if there is not exactly one element in the observable sequence. (Defined by Observable.) | |
Single<T>(Func<T, Boolean>) | Overloaded. Returns the only element of an observable sequence that matches the predicate and throws an exception if there is not exactly one element in the observable sequence. (Defined by Observable.) | |
SingleOrDefault<T>() | Overloaded. Returns the only element of an observable sequence, or a default value if the observable sequence is empty. (Defined by Observable.) | |
SingleOrDefault<T>(Func<T, Boolean>) | Overloaded. Returns the only element of an observable sequence that matches the predicate, or a default value if no value is found. (Defined by Observable.) | |
Skip<T> | Bypasses a specified number of values in an observable sequence and then returns the remaining values. (Defined by Observable.) | |
SkipLast<T> | Bypasses a specified number of elements at the end of an observable sequence. (Defined by Observable.) | |
SkipUntil<T, TOther> | Returns the values from the source observable sequence only after the other observable sequence produces a value. (Defined by Observable.) | |
SkipWhile<T>(Func<T, Boolean>) | Overloaded. Bypasses values in an observable sequence as long as a specified condition is true and then returns the remaining values. (Defined by Observable.) | |
SkipWhile<T>(Func<T, Int32, Boolean>) | Overloaded. Bypasses values in an observable sequence as long as a specified condition is true and then returns the remaining values. (Defined by Observable.) | |
StartWith<T>T[]) | Overloaded. Prepends a sequence of values to an observable sequence with the specified source and values. (Defined by Observable.) | |
StartWith<T>(IScheduler, T[]) | Overloaded. Prepends a sequence of values to an observable sequence with the specified source, scheduler and values. (Defined by Observable.) | |
Subscribe<T>() | Overloaded. Evaluates the observable sequence with a specified source. (Defined by ObservableExtensions.) | |
Subscribe<T>(Action<T>) | Overloaded. Subscribes an element handler to an observable sequence. (Defined by ObservableExtensions.) | |
Subscribe<T>(Action<T>, Action<Exception>) | Overloaded. Subscribes an element handler and an exception handler to an observable sequence. (Defined by ObservableExtensions.) | |
Subscribe<T>(Action<T>, Action) | Overloaded. Subscribes an element handler and a completion handler to an observable sequence. (Defined by ObservableExtensions.) | |
Subscribe<T>(Action<T>, Action<Exception>, Action) | Overloaded. Subscribes an element handler, an exception handler, and a completion handler to an observable sequence. (Defined by ObservableExtensions.) | |
SubscribeOn<T>(SynchronizationContext) | Overloaded. Asynchronously subscribes and unsubscribes observers on the specified synchronization context. (Defined by Observable.) | |
SubscribeOn<T>(Control) | Overloaded. (Defined by ControlObservable.) | |
SubscribeOn<T>(Dispatcher) | Overloaded. (Defined by DispatcherObservable.) | |
SubscribeOn<T>(DispatcherScheduler) | Overloaded. (Defined by DispatcherObservable.) | |
SubscribeOn<T>(IScheduler) | Overloaded. Asynchronously subscribes and unsubscribes observers on the specified scheduler. (Defined by Observable.) | |
SubscribeOnDispatcher<T> | (Defined by DispatcherObservable.) | |
Synchronize<T>() | Overloaded. Synchronizes the observable sequence. (Defined by Observable.) | |
Synchronize<T>(Object) | Overloaded. Synchronizes the observable sequence. (Defined by Observable.) | |
Take<T> | Returns a specified number of contiguous values from the start of an observable sequence. (Defined by Observable.) | |
TakeLast<T> | Returns a specified number of contiguous elements from the end of an observable sequence. (Defined by Observable.) | |
TakeUntil<T, TOther> | Returns the values from the source observable sequence until the other observable sequence produces a value. (Defined by Observable.) | |
TakeWhile<T>(Func<T, Boolean>) | Overloaded. Returns values from an observable sequence as long as a specified condition is true, and then skips the remaining values. (Defined by Observable.) | |
TakeWhile<T>(Func<T, Int32, Boolean>) | Overloaded. Returns values from an observable sequence as long as a specified condition is true, and then skips the remaining values. (Defined by Observable.) | |
Then<T, TResult> | Matches when the observable sequence has an available value and projects the value. (Defined by Observable.) | |
Throttle<T>(TimeSpan) | Overloaded. Ignores the values from an observable sequence which are followed by another value before due time with the specified source and dueTime. (Defined by Observable.) | |
Throttle<T>(TimeSpan, IScheduler) | Overloaded. Ignores the values from an observable sequence which are followed by another value before due time with the specified source, dueTime and scheduler. (Defined by Observable.) | |
TimeInterval<T>() | Overloaded. Records the time interval between consecutive values in an observable sequence with the specified source. (Defined by Observable.) | |
TimeInterval<T>(IScheduler) | Overloaded. Records the time interval between consecutive values in an observable sequence with the specified source and scheduler. (Defined by Observable.) | |
Timeout<T>(TimeSpan) | Overloaded. Returns either the observable sequence or an TimeoutException if dueTime elapses. (Defined by Observable.) | |
Timeout<T>(DateTimeOffset) | Overloaded. Returns either the observable sequence or a TimeoutException if dueTime elapses. (Defined by Observable.) | |
Timeout<T>(TimeSpan, IObservable<T>) | Overloaded. Returns the source observable sequence or the other observable sequence if dueTime elapses. (Defined by Observable.) | |
Timeout<T>(DateTimeOffset, IObservable<T>) | Overloaded. Returns either the observable sequence or an TimeoutException if dueTime elapses. (Defined by Observable.) | |
Timeout<T>(TimeSpan, IScheduler) | Overloaded. Returns either the observable sequence or an TimeoutException if dueTime elapses. (Defined by Observable.) | |
Timeout<T>(DateTimeOffset, IScheduler) | Overloaded. Returns either the observable sequence or an TimeoutException if dueTime elapses. (Defined by Observable.) | |
Timeout<T>(TimeSpan, IObservable<T>, IScheduler) | Overloaded. Returns the source observable sequence or the other observable sequence if dueTime elapses. (Defined by Observable.) | |
Timeout<T>(DateTimeOffset, IObservable<T>, IScheduler) | Overloaded. Returns the source observable sequence or the other observable sequence if dueTime elapses. (Defined by Observable.) | |
Timestamp<T>() | Overloaded. Records the timestamp for each value in an observable sequence with the specified source. (Defined by Observable.) | |
Timestamp<T>(IScheduler) | Overloaded. Records the timestamp for each value in an observable sequence with the specified source and scheduler. (Defined by Observable.) | |
ToArray<T> | Creates an array from an observable sequence. (Defined by Observable.) | |
ToDictionary<T, TKey>(Func<T, TKey>) | Overloaded. Creates a dictionary from an observable sequence according to a specified key selector function. (Defined by Observable.) | |
ToDictionary<T, TKey>(Func<T, TKey>, IEqualityComparer<TKey>) | Overloaded. Creates a dictionary from an observable sequence according to a specified key selector function, and a comparer. (Defined by Observable.) | |
ToDictionary<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>) | Overloaded. Creates a dictionary from an observable sequence according to a specified key selector function, and an element selector function. (Defined by Observable.) | |
ToDictionary<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>, IEqualityComparer<TKey>) | Overloaded. Creates a dictionary from an observable sequence according to a specified key selector function, a comparer, and an element selector function. (Defined by Observable.) | |
ToEnumerable<T> | Converts an observable sequence to an enumerable sequence. (Defined by Observable.) | |
ToEvent<T> | Exposes an observable sequence as an object with a .NET event with a specified source. (Defined by Observable.) | |
ToList<T> | Creates a list from an observable sequence. (Defined by Observable.) | |
ToLookup<T, TKey>(Func<T, TKey>) | Overloaded. Creates a lookup from an observable sequence according to a specified key selector function. (Defined by Observable.) | |
ToLookup<T, TKey>(Func<T, TKey>, IEqualityComparer<TKey>) | Overloaded. Creates a lookup from an observable sequence according to a specified key selector function, and a comparer. (Defined by Observable.) | |
ToLookup<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>) | Overloaded. Creates a lookup from an observable sequence according to a specified key selector function, and an element selector function. (Defined by Observable.) | |
ToLookup<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>, IEqualityComparer<TKey>) | Overloaded. Creates a lookup from an observable sequence according to a specified key selector function, a comparer, and an element selector function. (Defined by Observable.) | |
ToNotifier<T> | Creates a notification callback from an observer. (Defined by Observer.) | |
ToTask<T>() | Overloaded. Returns a task that contains the last value of the observable sequence. (Defined by TaskObservableExtensions.) | |
ToTask<T>(Object) | Overloaded. Returns a task that contains the last value of the observable sequence. (Defined by TaskObservableExtensions.) | |
ToTask<T>(CancellationToken) | Overloaded. Returns a task that contains the last value of the observable sequence. (Defined by TaskObservableExtensions.) | |
ToTask<T>(CancellationToken, Object) | Overloaded. Returns a task that contains the last value of the observable sequence. (Defined by TaskObservableExtensions.) | |
Where<T>(Func<T, Boolean>) | Overloaded. Filters the elements of an observable sequence based on a predicate. (Defined by Observable.) | |
Where<T>(Func<T, Int32, Boolean>) | Overloaded. Filters the elements of an observable sequence based on a predicate by incorporating the element's index. (Defined by Observable.) | |
Window<T>(Int32) | Overloaded. Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on element count information. (Defined by Observable.) | |
Window<T>(TimeSpan) | Overloaded. Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information. (Defined by Observable.) | |
Window<T>(Int32, Int32) | Overloaded. Projects each element of an observable sequence into zero or more windows which are produced based on element count information. (Defined by Observable.) | |
Window<T>(TimeSpan, IScheduler) | Overloaded. Projects each element of an observable sequence into consecutive non-overlapping windows which are produced based on timing information. (Defined by Observable.) | |
Window<T>(TimeSpan, TimeSpan) | Overloaded. Projects each element of an observable sequence into zero or more windows which are produced based on timing information. (Defined by Observable.) | |
Window<T>(TimeSpan, Int32) | Overloaded. Projects each element of an observable sequence into a window that is completed when either it’s full or a given amount of time has elapsed. (Defined by Observable.) | |
Window<T>(TimeSpan, TimeSpan, IScheduler) | Overloaded. Projects each element of an observable sequence into zero or more windows which are produced based on timing information. (Defined by Observable.) | |
Window<T>(TimeSpan, Int32, IScheduler) | Overloaded. Projects each element of an observable sequence into a window that is completed when either it’s full or a given amount of time has elapsed. (Defined by Observable.) | |
Window<T, TWindowClosing>(Func<IObservable<TWindowClosing>>) | Overloaded. Projects each element of an observable sequence into consecutive non-overlapping windows. (Defined by Observable.) | |
Window<T, TWindowOpening, TWindowClosing>(IObservable<TWindowOpening>, Func<TWindowOpening, IObservable<TWindowClosing>>) | Overloaded. Projects each element of an observable sequence into zero or more windows. (Defined by Observable.) | |
Zip<T, TSecond, TResult>(IObservable<TSecond>, Func<T, TSecond, TResult>) | Overloaded. Merges two observable sequences into one observable sequence by combining their elements in a pairwise fashion. (Defined by Observable.) | |
Zip<T, TSecond, TResult>(IEnumerable<TSecond>, Func<T, TSecond, TResult>) | Overloaded. Merges an observable sequence and an enumerable sequence into one observable sequence by using the selector function. (Defined by Observable.) |
Top
Remarks
A subject acts similar to a proxy in that it acts as both a subscriber and a publisher. Its IObserver interface can be used to subscribe to multiple observable sequences of data. The data is then published through the subject's IObservable interface.
A ReplaySubject buffers items it receives. So a subscription created at a later time can access items from the buffered sequence even if they have already been published. How many items a ReplaySubject will buffer depends on the parameters passed to the constructor.
Regular subjects do synchronize outgoing calls to subcribed observers using a scheduler.
Examples
In this example we have created a NewsHeadlineFeed class which is just a mock news feed in the form of an observable sequence of strings. It uses the Generate operator to continuoously generate a random news headline within three seconds.
A ReplaySubject is created to subscribe to two news feeds of the NewsHeadlineFeed class. Before the subject is subscribed to the feeds, the Timestamp operator is used to timestamp each headline. So the sequence that the ReplaySubject actually subscribes to is of the type IObservable<Timestamped<string>>. With the headline sequence timestamped, subscribers can subscribe to the subject's observable interface to observe the data stream(s) or a subset of the stream(s) based on the timestamp.
A ReplaySubject buffers items it receives. So a subscription created at a later time can access items from the sequence which have already been buffered and published. A subscriptions is created to the ReplaySubject that receives only local news headlines which occurred 10 seconds before the local news subscription was created. So we basically have the ReplaySubject "replay" what happened 10 seconds earlier.
A local news headline just contains the newsLocation substring ("in your area.").
using System;
using System.Reactive;
using System.Reactive.Linq;
using System.Reactive.Subjects;
using System.Reactive.Concurrency;
using System.Threading;
namespace Example
{
class Program
{
static void Main()
{
//*****************************************************************************************************//
//*** A subject acts similar to a proxy in that it acts as both a subscriber and a publisher ***//
//*** It's IObserver interface can be used to subscribe to multiple streams or sequences of data. ***//
//*** The data is then published through it's IObservable interface. ***//
//*** ***//
//*** In this example a simple ReplaySubject is used to subscribe to multiple news feeds ***//
//*** that provide random news headlines. Before the subject is subscribed to the feeds, we use ***//
//*** Timestamp operator to timestamp each headline. Subscribers can then subscribe to the subject ***//
//*** observable interface to observe the data stream(s) or a subset of the stream(s) based on ***//
//*** time. ***//
//*** ***//
//*** A ReplaySubject buffers items it receives. So a subscription created at a later time can ***//
//*** access items from the sequence which have already been published. ***//
//*** ***//
//*** A subscriptions is created to the ReplaySubject that receives only local news headlines which ***//
//*** occurred 10 seconds before the local news subscription was created. So we basically have the ***//
//*** ReplaySubject "replay" what happened 10 seconds earlier. ***//
//*** ***//
//*** A local news headline just contains the newsLocation substring ("in your area."). ***//
//*** ***//
//*****************************************************************************************************//
ReplaySubject<Timestamped<string>> myReplaySubject = new ReplaySubject<Timestamped<String>>();
//*****************************************************************//
//*** Create news feed #1 and subscribe the ReplaySubject to it ***//
//*****************************************************************//
NewsHeadlineFeed NewsFeed1 = new NewsHeadlineFeed("Headline News Feed #1");
NewsFeed1.HeadlineFeed.Timestamp().Subscribe(myReplaySubject);
//*****************************************************************//
//*** Create news feed #2 and subscribe the ReplaySubject to it ***//
//*****************************************************************//
NewsHeadlineFeed NewsFeed2 = new NewsHeadlineFeed("Headline News Feed #2");
NewsFeed2.HeadlineFeed.Timestamp().Subscribe(myReplaySubject);
//*****************************************************************************************************//
//*** Create a subscription to the subject's observable sequence. This subscription will filter for ***//
//*** only local headlines that occurred 10 seconds before the subscription was created. ***//
//*** ***//
//*** Since we are using a ReplaySubject with timestamped headlines, we can subscribe to the ***//
//*** headlines already past. The ReplaySubject will "replay" them for the localNewSubscription ***//
//*** from its buffered sequence of headlines. ***//
//*****************************************************************************************************//
Console.WriteLine("Waiting for 10 seconds before subscribing to local news headline feed.\n");
Thread.Sleep(10000);
Console.WriteLine("\n*** Creating local news headline subscription at {0} ***\n", DateTime.Now.ToString());
Console.WriteLine("This subscription asks the ReplaySubject for the buffered headlines that\n" +
"occurred within the last 10 seconds.\n\nPress ENTER to exit.", DateTime.Now.ToString());
DateTime lastestHeadlineTime = DateTime.Now;
DateTime earliestHeadlineTime = lastestHeadlineTime - TimeSpan.FromSeconds(10);
IDisposable localNewsSubscription = myReplaySubject.Where(x => x.Value.Contains("in your area.") &&
(x.Timestamp >= earliestHeadlineTime) &&
(x.Timestamp < lastestHeadlineTime)).Subscribe(x =>
{
Console.WriteLine("\n************************************\n" +
"***[ Local news headline report ]***\n" +
"************************************\n" +
"Time : {0}\n{1}\n\n", x.Timestamp.ToString(), x.Value);
});
Console.ReadLine();
//*******************************//
//*** Cancel the subscription ***//
//*******************************//
localNewsSubscription.Dispose();
//*************************************************************************//
//*** Unsubscribe all the ReplaySubject's observers and free resources. ***//
//*************************************************************************//
myReplaySubject.Dispose();
}
}
//*********************************************************************************//
//*** ***//
//*** The NewsHeadlineFeed class is just a mock news feed in the form of an ***//
//*** observable sequence in Reactive Extensions. ***//
//*** ***//
//*********************************************************************************//
class NewsHeadlineFeed
{
private string feedName; // Feedname used to label the stream
private IObservable<string> headlineFeed; // The actual data stream
private readonly Random rand = new Random(); // Used to stream random headlines.
//*** A list of predefined news events to combine with a simple location string ***//
static readonly string[] newsEvents = { "A tornado occurred ",
"Weather watch for snow storm issued ",
"A robbery occurred ",
"We have a lottery winner ",
"An earthquake occurred ",
"Severe automobile accident "};
//*** A list of predefined location strings to combine with a news event. ***//
static readonly string[] newsLocations = { "in your area.",
"in Dallas, Texas.",
"somewhere in Iraq.",
"Lincolnton, North Carolina",
"Redmond, Washington"};
public IObservable<string> HeadlineFeed
{
get { return headlineFeed; }
}
public NewsHeadlineFeed(string name)
{
feedName = name;
//*****************************************************************************************//
//*** Using the Generate operator to generate a continous stream of headline that occur ***//
//*** randomly within 5 seconds. ***//
//*****************************************************************************************//
headlineFeed = Observable.Generate(RandNewsEvent(),
evt => true,
evt => RandNewsEvent(),
evt => { Thread.Sleep(rand.Next(3000)); return evt; },
Scheduler.ThreadPool);
}
//****************************************************************//
//*** Some very simple formatting of the headline event string ***//
//****************************************************************//
private string RandNewsEvent()
{
return "Feedname : " + feedName + "\nHeadline : " + newsEvents[rand.Next(newsEvents.Length)] +
newsLocations[rand.Next(newsLocations.Length)];
}
}
}
The following output was generated with the example code. The new feeds are random so it is possible that you may have to run it more than once to see a local news headline.
Waiting for 10 seconds before subscribing to local news headline feed.
** Creating local news headline subscription at 5/9/2011 4:07:48 AM **
This subscription asks the ReplaySubject for the buffered headlines that
occurred within the last 10 seconds.
Press ENTER to exit.
********************************** [ Local news headline report ] ********************************** Time : 5/9/2011 4:07:42 AM -04:00 Feedname : Headline News Feed #2 Headline : We have a lottery winner in your area.
********************************** [ Local news headline report ] ********************************** Time : 5/9/2011 4:07:47 AM -04:00 Feedname : Headline News Feed #1 Headline : Weather watch for snow storm issued in your area.
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.