Интерфейс IConnectableObservable<T>
Представляет наблюдаемое, которое может быть подключено и отключено.
пространство имен :System.Reactive.Темы
сборка : System.Reactive (в System.Reactive.dll)
Синтаксис
'Declaration
Public Interface IConnectableObservable(Of Out T) _
Inherits IObservable(Of T)
'Usage
Dim instance As IConnectableObservable(Of Out T)
public interface IConnectableObservable<out T> : IObservable<T>
generic<typename T>
public interface class IConnectableObservable : IObservable<T>
type IConnectableObservable<'T> =
interface
interface IObservable<'T>
end
JScript does not support generic types and methods.
Параметры типа
outT
Тип.Этот параметр типа является ковариантным. То есть можно использовать указанный тип или любой тип, который является более производным. Дополнительные сведения о ковариации и контравариации см. в .
Тип> IConnectableObservable<T предоставляет следующие элементы.
Методика
Имя | Описание | |
---|---|---|
![]() |
Connect | Подключает наблюдаемый объект. |
![]() |
подписка | (Наследуется от IObservable<T>.) |
Вверх
Методы расширения
Имя | Описание | |
---|---|---|
![]() |
Агрегатная<T>(Func<T, T, T> ) | Перегруженные. Применяет функцию аккумулятора к наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
Агрегатные<T, TAccumulate>(TAccumulate, Func<TAccumulate, T, TAccumulate>) | Перегруженные. Применяет функцию аккумулятора к наблюдаемой последовательности с указанным начальным значением. (Определяется наблюдаемым.) |
![]() |
Все<T> | Определяет, соответствуют ли все элементы наблюдаемой последовательности условию. (Определяется наблюдаемым.) |
![]() |
Amb<T> | Распространяет наблюдаемую последовательность, которая реагирует сначала с указанной первой и второй последовательностью. (Определяется наблюдаемым.) |
![]() |
И<T, TRight> | Совпадает, если обе наблюдаемые последовательности имеют доступное значение. (Определяется наблюдаемым.) |
![]() |
Любые<T>() | Перегруженные. Определяет, содержит ли наблюдаемая последовательность любые элементы. (Определяется наблюдаемым.) |
![]() |
Любой<T>(Func<T, логический>) | Перегруженные. Определяет, соответствуют ли все элементы наблюдаемой последовательности условию. (Определяется наблюдаемым.) |
![]() |
AsObservable<T> | Скрывает удостоверение наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
AsQbservable<T> | Преобразует наблюдаемую последовательность в запрашиваемую наблюдаемую последовательность. (Определяется Qbservable.) |
![]() |
AssertEqual<T> | (Определяется расширениями .) |
![]() |
буфер<T>(Int32) | Перегруженные. Указывает каждый элемент наблюдаемой последовательности в последовательные не перекрывающиеся буферы, создаваемые на основе сведений о количестве элементов. (Определяется наблюдаемым.) |
![]() |
Буфер<T>(TimeSpan) | Перегруженные. Указывает каждый элемент наблюдаемой последовательности в последовательные не перекрывающиеся буферы, создаваемые на основе сведений о времени. (Определяется наблюдаемым.) |
![]() |
буфера<T>(Int32, Int32) | Перегруженные. Указывает каждый элемент наблюдаемой последовательности в ноль или больше буферов, создаваемых на основе сведений о количестве элементов. (Определяется наблюдаемым.) |
![]() |
буфер<T>(TimeSpan, IScheduler) | Перегруженные. Указывает каждый элемент наблюдаемой последовательности в последовательные не перекрывающиеся буферы, создаваемые на основе сведений о времени. (Определяется наблюдаемым.) |
![]() |
буфер<T>(TimeSpan, TimeSpan) | Перегруженные. Указывает каждый элемент наблюдаемой последовательности на ноль или больше буферов, создаваемых на основе сведений о времени. (Определяется наблюдаемым.) |
![]() |
буфер<T>(TimeSpan, Int32) | Перегруженные. Указывает каждый элемент наблюдаемой последовательности в буфер, отправляемый при заполнении или заданном времени. (Определяется наблюдаемым.) |
![]() |
буфер<T>(TimeSpan, TimeSpan, IScheduler) | Перегруженные. Указывает каждый элемент наблюдаемой последовательности на ноль или больше буферов, создаваемых на основе сведений о времени. (Определяется наблюдаемым.) |
![]() |
буфер<T>(TimeSpan, Int32, IScheduler) | Перегруженные. Указывает каждый элемент наблюдаемой последовательности в буфер, отправляемый при заполнении или заданном времени. (Определяется наблюдаемым.) |
![]() |
буфер<T, TBufferClosing>(Func<IObservable<TBufferClosing>>) | Перегруженные. Указывает каждый элемент наблюдаемой последовательности в последовательные не перекрывающиеся буферы. (Определяется наблюдаемым.) |
![]() |
буфер<T, TBufferOpening, TBufferClosing>(IObservable<TBufferOpening>, Func<TBufferOpening, IObservable<TBufferClosing>>) | Перегруженные. Указывает каждый элемент запрашиваемой наблюдаемой последовательности в последовательные не перекрывающиеся буферы. (Определяется наблюдаемым.) |
![]() |
Catch<T>(IObservable<T>) | Перегруженные. Продолжает наблюдаемую последовательность, которая завершается исключением со следующей наблюдаемой последовательностью. (Определяется наблюдаемым.) |
![]() |
Catch<T, TException>(Func<TException, IObservable<T>>) | Перегруженные. Продолжает наблюдаемую последовательность, которая завершается исключением указанного типа с наблюдаемой последовательностью, созданной обработчиком. (Определяется наблюдаемым.) |
![]() |
CombineLatest<T, TSecond, TResult> | Объединяет две наблюдаемые последовательности в одну наблюдаемую последовательность с помощью функции селектора всякий раз, когда одна из наблюдаемых последовательностей создает элемент. (Определяется наблюдаемым.) |
![]() |
Конката<T> | Объединяет две наблюдаемые последовательности. (Определяется наблюдаемым.) |
![]() |
содержит<T>(T) | Перегруженные. Определяет, содержит ли наблюдаемая последовательность указанный элемент с помощью средства сравнения равенства по умолчанию. (Определяется наблюдаемым.) |
![]() |
содержит<T>(T, IEqualityComparer<T>) | Перегруженные. Определяет, содержит ли наблюдаемая последовательность указанный элемент с помощью указанного объекта System.Collections.Generic.IEqualityComparer< T>. (Определяется наблюдаемым.) |
![]() |
счетчик<T> | Возвращает Int32, представляющую общее количество элементов в наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
DefaultIfEmpty<T>() | Перегруженные. Возвращает элементы указанной последовательности или значение параметра типа по умолчанию в однотонной последовательности, если последовательность пуста. (Определяется наблюдаемым.) |
![]() |
DefaultIfEmpty<T>(T) | Перегруженные. Возвращает элементы указанной последовательности или значение параметра типа по умолчанию в однотонной последовательности, если последовательность пуста. (Определяется наблюдаемым.) |
![]() |
задержка<T>(timeSpan) | Перегруженные. Указывает наблюдаемую последовательность по времени с указанным источником и dueTime. (Определяется наблюдаемым.) |
![]() |
задержка<T>(DateTimeOffset) | Перегруженные. Указывает наблюдаемую последовательность по времени с указанным источником и dueTime. (Определяется наблюдаемым.) |
![]() |
задержка<T>(TimeSpan, IScheduler) | Перегруженные. Указывает наблюдаемую последовательность по времени выполнения с указанным источником, dueTime и планировщиком. (Определяется наблюдаемым.) |
![]() |
задержка<T>(DateTimeOffset, IScheduler) | Перегруженные. Указывает наблюдаемую последовательность по времени выполнения с указанным источником, dueTime и планировщиком. (Определяется наблюдаемым.) |
![]() |
> > < | Перегруженные. Возвращает наблюдаемую последовательность, содержащую только отдельные элементы с указанным источником. (Определяется наблюдаемым.) |
![]() |
<T>(IEqualityComparer<T>) | Перегруженные. Возвращает наблюдаемую последовательность, содержащую только отдельные элементы в соответствии с компратером. (Определяется наблюдаемым.) |
![]() |
Уникальные<T, TKey>(Func<T, TKey>) | Перегруженные. Возвращает наблюдаемую последовательность, содержащую только отдельные элементы в соответствии с ключомSelector. (Определяется наблюдаемым.) |
![]() |
Distinct<T, TKey>(Func<T, TKey>, IEqualityComparer<TKey>) | Перегруженные. Возвращает наблюдаемую последовательность, содержащую только отдельные элементы в соответствии с ключомSelector. (Определяется наблюдаемым.) |
![]() |
DistinctUntilChanged<T>() | Перегруженные. Возвращает наблюдаемую последовательность, содержащую только отдельные смежные элементы с указанным источником. (Определяется наблюдаемым.) |
![]() |
DistinctUntilChanged<T>(IEqualityComparer<T>) | Перегруженные. Возвращает наблюдаемую последовательность, содержащую только отдельные смежные элементы в соответствии с сравнивателем. (Определяется наблюдаемым.) |
![]() |
DistinctUntilChanged<T, TKey>(Func<T, TKey>) | Перегруженные. Возвращает наблюдаемую последовательность, содержащую только отдельные смежные элементы в соответствии с ключом. (Определяется наблюдаемым.) |
![]() |
DistinctUntilChanged<T, TKey>(Func<T, TKey>, IEqualityComparer<TKey>) | Перегруженные. Возвращает наблюдаемую последовательность, которая содержит только отдельные смежные элементы в соответствии с ключомSelector и компратором. (Определяется наблюдаемым.) |
![]() |
<T>(действие<T>) | Перегруженные. Вызывает действие для каждого элемента в наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
<T>(IObserver<T>) | Перегруженные. Вызывает действие для каждого элемента в наблюдаемой последовательности и вызывает действие при исключительном завершении наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
<T>(действие<T>, действие) | Перегруженные. Вызывает действие для каждого элемента в наблюдаемой последовательности и вызывает действие при корректном завершении наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
<T>(действие<T>, действие<исключения>) | Перегруженные. Вызывает действие для каждого элемента в наблюдаемой последовательности и вызывает действие при исключительном завершении наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
<T>(действие<T>, действие<исключения>, действие) | Перегруженные. Вызывает действие для каждого элемента в наблюдаемой последовательности и вызывает действие при корректном или исключительном завершении наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
ElementAt<T> | Возвращает элемент по указанному индексу в последовательности. (Определяется наблюдаемым.) |
![]() |
ElementAtOrDefault<T> | Возвращает элемент по указанному индексу в последовательности или значении по умолчанию, если индекс выходит из диапазона. (Определяется наблюдаемым.) |
![]() |
, наконец,<T> | Вызывает указанное действие после того, как исходная наблюдаемая последовательность завершается обычно или по исключению. (Определяется наблюдаемым.) |
![]() |
Первый<T>() | Перегруженные. Возвращает первый элемент наблюдаемой последовательности с указанным источником. (Определяется наблюдаемым.) |
![]() |
First<T>(Func<T, Boolean>) | Перегруженные. Возвращает первый элемент наблюдаемой последовательности, соответствующий предикату. (Определяется наблюдаемым.) |
![]() |
FirstOrDefault<T>() | Перегруженные. Возвращает первый элемент наблюдаемой последовательности или значение по умолчанию, если значение не найдено. (Определяется наблюдаемым.) |
![]() |
FirstOrDefault<T>(Func<T, логический>) | Перегруженные. Возвращает первый элемент наблюдаемой последовательности, соответствующий предикату, или значение по умолчанию, если значение не найдено. (Определяется наблюдаемым.) |
![]() |
Foo<T, R> | (Определяется MyExt.) |
![]() |
ForEach<T> | Вызывает действие для каждого элемента в наблюдаемой последовательности и блокируется до завершения последовательности. (Определяется наблюдаемым.) |
![]() |
GetEnumerator<T> | Возвращает перечислитель, перечисляющий все значения наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
GroupBy<T, TKey>(Func<T, TKey>) | Перегруженные. Группируйте элементы наблюдаемой последовательности в соответствии с указанной функцией селектора ключей. (Определяется наблюдаемым.) |
![]() |
GroupBy<T, TKey>(Func<T, TKey>, IEqualityComparer<TKey>) | Перегруженные. Группируйте элементы наблюдаемой последовательности в соответствии с указанной функцией селектора ключей и компратором. (Определяется наблюдаемым.) |
![]() |
GroupBy<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>) | Перегруженные. Группирует элементы наблюдаемой последовательности и выбирает результирующий элемент с помощью указанной функции. (Определяется наблюдаемым.) |
![]() |
GroupBy<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>, IEqualityComparer<TKey>) | Перегруженные. Группирует элементы наблюдаемой последовательности в соответствии с указанной функцией селектора ключей и компратором и выбирает результирующий элемент с помощью указанной функции. (Определяется наблюдаемым.) |
![]() |
GroupByUntil<T, TKey, TDuration>(Func<T, TKey>, Func<IGroupedObservable<TKey, T>, IObservable<TDuration>>) | Перегруженные. Группируйте элементы наблюдаемой последовательности в соответствии с указанной функцией селектора ключей. (Определяется наблюдаемым.) |
![]() |
GroupByUntil<T, TKey, TDuration>(Func<T, TKey>, Func<IGroupedObservable<TKey, T>, IObservable<TDuration>>, IEqualityComparer<TKey>) | Перегруженные. Группируйте элементы наблюдаемой последовательности в соответствии с указанной функцией селектора ключей и компратором. (Определяется наблюдаемым.) |
![]() |
GroupByUntil<T, TKey, TElement, TDuration>(Func<T, TKey>, Func<T, TElement>, Func<IGroupedObservable<TKey, TElement>, IObservable<TDuration>>) | Перегруженные. Группирует элементы наблюдаемой последовательности в соответствии с указанной функцией селектора ключей и выбирает результирующий элемент с помощью указанной функции. (Определяется наблюдаемым.) |
![]() |
GroupByUntil<T, TKey, TElement, TDuration>(Func<T, TKey>, Func<T, TElement>, Func<IGroupedObservable<TKey, TElement>, IObservable<TDuration>>, IEqualityComparer<TKey>) | Перегруженные. Группирует элементы наблюдаемой последовательности в соответствии с указанной функцией селектора ключей и компратором и выбирает результирующий элемент с помощью указанной функции. (Определяется наблюдаемым.) |
![]() |
GroupJoin<T, TRight, TLeftDuration, TRightDuration, TResult> | Сопоставляет элементы двух последовательностей на основе перекрывающихся длительностей и группирует результаты. (Определяется наблюдаемым.) |
![]() |
IgnoreElements<T> | Игнорирует все значения в наблюдаемой последовательности, оставляя только сообщения о завершении. (Определяется наблюдаемым.) |
![]() |
Join<T, TRight, TLeftDuration, TRightDuration, TResult> | Сопоставляет элементы двух последовательностей на основе перекрывающихся длительностей. (Определяется наблюдаемым.) |
![]() |
последний<T>() | Перегруженные. Возвращает последний элемент наблюдаемой последовательности с указанным источником. (Определяется наблюдаемым.) |
![]() |
последний<T>(Func<T, логический>) | Перегруженные. Возвращает последний элемент наблюдаемой последовательности, которая соответствует предикату. (Определяется наблюдаемым.) |
![]() |
LastOrDefault<T>() | Перегруженные. Возвращает последний элемент в наблюдаемой последовательности или значение по умолчанию, если значение не найдено. (Определяется наблюдаемым.) |
![]() |
LastOrDefault<T>(Func<T, логический>) | Перегруженные. Возвращает последний элемент наблюдаемой последовательности, соответствующий предикату, или значение по умолчанию, если значение не найдено. (Определяется наблюдаемым.) |
![]() |
последние<T> | Примеры последнего значения в наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
LongCount<T> | Возвращает int64, представляющий общее количество элементов в наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
Материализуйте<T> | Материализует неявные уведомления наблюдаемой последовательности как явные значения уведомлений. (Определяется наблюдаемым.) |
![]() |
Max<T>() | Перегруженные. Возвращает максимальный элемент в наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
Max<T>(IComparer<T>) | Перегруженные. Возвращает максимальное значение в наблюдаемой последовательности в соответствии с указанным сравнивателем. (Определяется наблюдаемым.) |
![]() |
MaxBy<T, TKey>(Func<T, TKey>) | Перегруженные. Возвращает элементы в наблюдаемой последовательности с максимальным значением ключа. (Определяется наблюдаемым.) |
![]() |
MaxBy<T, TKey>(Func<T, TKey>, IComparer<TKey>) | Перегруженные. Возвращает элементы в наблюдаемой последовательности с максимальным значением ключа. (Определяется наблюдаемым.) |
![]() |
Слияние<T>(IObservable<T>) | Перегруженные. Объединяет наблюдаемую последовательность наблюдаемых последовательностей в наблюдаемую последовательность. (Определяется наблюдаемым.) |
![]() |
Слияние<T>(IObservable<T>, IScheduler) | Перегруженные. Объединяет две наблюдаемые последовательности в одну наблюдаемую последовательность. (Определяется наблюдаемым.) |
![]() |
мин<T> | Перегруженные. Возвращает минимальный элемент в наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
мин<T>(IComparer<T>) | Перегруженные. Возвращает минимальное значение в наблюдаемой последовательности в соответствии с указанным сравнивателем. (Определяется наблюдаемым.) |
![]() |
MinBy<T, TKey>(Func<T, TKey>) | Перегруженные. Возвращает элементы в наблюдаемой последовательности с минимальным значением ключа. (Определяется наблюдаемым.) |
![]() |
MinBy<T, TKey>(Func<T, TKey>, IComparer<TKey>) | Перегруженные. Возвращает элементы в наблюдаемой последовательности с минимальным значением ключа в соответствии с указанным сравнивателем. (Определяется наблюдаемым.) |
![]() |
MostRecent<T> | Примеры последнего значения в наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
многоадресной рассылки<T, TResult>(ISubject<T, TResult>) | Перегруженные. Возвращает подключаемую наблюдаемую последовательность, которая при подключении приводит к отправке результатов исходной последовательности в указанную тему. (Определяется наблюдаемым.) |
![]() |
Multicast<T, TIntermediate, TResult>(Func<ISubject<T, TIntermediate>>, Func<IObservable<TIntermediate>, IObservable<TResult>>) | Перегруженные. Возвращает наблюдаемую последовательность, содержащую элементы последовательности, созданной путем многоадресной рассылки исходной последовательности в функции селектора. (Определяется наблюдаемым.) |
![]() |
следующей<T> | Примеры следующего значения (блокировка без буферизации) из наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
ObserveOn<T>(SynchronizationContext) | Перегруженные. Асинхронно уведомлять наблюдателей о указанном контексте синхронизации. (Определяется наблюдаемым.) |
![]() |
ObserveOn<T>(Control) | Перегруженные. (Определяется ControlObservable.) |
![]() |
ObserveOn<T>(диспетчер) | Перегруженные. (Определяется DispatcherObservable.) |
![]() |
ObserveOn<T>(DispatcherScheduler) | Перегруженные. (Определяется DispatcherObservable.) |
![]() |
ObserveOn<T>(IScheduler) | Перегруженные. Асинхронно уведомлять наблюдателей по указанному планировщику. (Определяется наблюдаемым.) |
![]() |
ObserveOnDispatcher<T> | (Определяется DispatcherObservable.) |
![]() |
OnErrorResumeNext<T> | Продолжает наблюдаемую последовательность, которая завершается обычно или исключением с следующей наблюдаемой последовательностью. (Определяется наблюдаемым.) |
![]() |
публикации<T>() | Перегруженные. Возвращает подключаемую наблюдаемую последовательность, которая использует одну подписку в базовой последовательности. (Определяется наблюдаемым.) |
![]() |
публикации<T>(T) | Перегруженные. Возвращает подключаемую наблюдаемую последовательность, которая использует одну подписку для базовой последовательности и начинается с initialValue. (Определяется наблюдаемым.) |
![]() |
публикации<T, TResult>(Func<IObservable<T>, IObservable<TResult>>) | Перегруженные. Возвращает наблюдаемую последовательность, которая является результатом вызова селектора в подключаемой наблюдаемой последовательности, которая предоставляет одну подписку базовой последовательности. (Определяется наблюдаемым.) |
![]() |
публикации<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, T) | Перегруженные. Возвращает подключаемую наблюдаемую последовательность, которая использует одну подписку для базовой последовательности и начинается с initialValue. (Определяется наблюдаемым.) |
![]() |
PublishLast<T>() | Перегруженные. Возвращает подключаемую наблюдаемую последовательность, которая использует одну подписку в базовой последовательности, содержащей только последнее уведомление. (Определяется наблюдаемым.) |
![]() |
PublishLast<T, TResult>(Func<IObservable<T>, IObservable<TResult>>) | Перегруженные. Возвращает наблюдаемую последовательность, которая является результатом вызова селектора в подключаемой наблюдаемой последовательности, которая использует одну подписку на базовую последовательность, содержащую только последнее уведомление. (Определяется наблюдаемым.) |
![]() |
RefCount<TSource> | Возвращает наблюдаемую последовательность, которая остается подключенной к источнику до тех пор, пока есть по крайней мере одна подписка на наблюдаемую последовательность. (Определяется наблюдаемым.) |
![]() |
повторить<T>() | Перегруженные. Повторяет наблюдаемую последовательность на неопределенный срок. (Определяется наблюдаемым.) |
![]() |
повторять<T>(Int32) | Перегруженные. Повторяет наблюдаемую последовательность на неопределенный срок. (Определяется наблюдаемым.) |
![]() |
воспроизведение<T>() | Перегруженные. Возвращает подключаемую наблюдаемую последовательность, которая разделяет одну подписку на базовую последовательность, переразив все уведомления. (Определяется наблюдаемым.) |
![]() |
воспроизведения<T>(TimeSpan) | Перегруженные. Возвращает подключаемую наблюдаемую последовательность, которая разделяет одну подписку на базовую последовательность, переразив все уведомления в окне. (Определяется наблюдаемым.) |
![]() |
воспроизведения<T>(Int32) | Перегруженные. Возвращает подключаемую наблюдаемую последовательность, которая использует одну подписку для базовой повторной отправки уведомлений bufferSize. (Определяется наблюдаемым.) |
![]() |
воспроизведения<T>(IScheduler) | Перегруженные. Возвращает подключаемую наблюдаемую последовательность, которая разделяет одну подписку на базовую последовательность, переразив все уведомления. (Определяется наблюдаемым.) |
![]() |
воспроизведения<T>(TimeSpan, IScheduler) | Перегруженные. Возвращает подключаемую наблюдаемую последовательность, которая разделяет одну подписку на базовую последовательность, переразив все уведомления в окне. (Определяется наблюдаемым.) |
![]() |
воспроизведения<T>(Int32, IScheduler) | Перегруженные. Возвращает подключаемую наблюдаемую последовательность, которая использует одну подписку для базовой повторной отправки уведомлений bufferSize. (Определяется наблюдаемым.) |
![]() |
воспроизведения<T>(Int32, TimeSpan) | Перегруженные. Возвращает подключаемую наблюдаемую последовательность, которая использует одну подписку для базовой повторной отправки буферов буфераSize в окне. (Определяется наблюдаемым.) |
![]() |
воспроизведения<T>(Int32, TimeSpan, IScheduler) | Перегруженные. Возвращает подключаемую наблюдаемую последовательность, которая использует одну подписку для базовой повторной отправки буферов буфераSize в окне. (Определяется наблюдаемым.) |
![]() |
воспроизведения<T, TResult>(Func<IObservable<T>, IObservable<TResult>>) | Перегруженные. Возвращает наблюдаемую последовательность, которая является результатом вызова селектора в подключаемой наблюдаемой последовательности, которая предоставляет одну подписку базовой последовательности и начинается с начального значения. (Определяется наблюдаемым.) |
![]() |
воспроизведения<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, IScheduler) | Перегруженные. Возвращает наблюдаемую последовательность, которая является результатом вызова селектора в подключаемой наблюдаемой последовательности, которая использует одну подписку на базовую последовательность, переразив все уведомления. (Определяется наблюдаемым.) |
![]() |
воспроизведения<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, TimeSpan) | Перегруженные. Возвращает наблюдаемую последовательность, которая является результатом вызова селектора в подключаемой наблюдаемой последовательности, которая разделяет одну подписку на базовую последовательность, повторяющую все уведомления в окне. (Определяется наблюдаемым.) |
![]() |
воспроизведения<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, Int32) | Перегруженные. Возвращает наблюдаемую последовательность, которая является результатом вызова селектора в подключаемой наблюдаемой последовательности, которая использует одну подписку для базовой повторяющейся буферизации уведомлений. (Определяется наблюдаемым.) |
![]() |
воспроизведения<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, TimeSpan, IScheduler) | Перегруженные. Возвращает наблюдаемую последовательность, которая является результатом вызова селектора в подключаемой наблюдаемой последовательности, которая разделяет одну подписку на базовую последовательность, повторяющую все уведомления в окне. (Определяется наблюдаемым.) |
![]() |
воспроизведения<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, Int32, IScheduler) | Перегруженные. Возвращает наблюдаемую последовательность, которая является результатом вызова селектора в подключаемой наблюдаемой последовательности, которая использует одну подписку для базовой повторяющейся буферизации уведомлений. (Определяется наблюдаемым.) |
![]() |
воспроизведения<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, Int32, TimeSpan) | Перегруженные. Возвращает наблюдаемую последовательность, которая является результатом вызова селектора в подключаемой наблюдаемой последовательности, которая использует одну подписку для базовой повторяющейся буферизации буферовSize в окне. (Определяется наблюдаемым.) |
![]() |
воспроизведения<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, Int32, TimeSpan, IScheduler) | Перегруженные. Возвращает наблюдаемую последовательность, которая является результатом вызова селектора в подключаемой наблюдаемой последовательности, которая использует одну подписку для базовой повторяющейся буферизации буферовSize в окне. (Определяется наблюдаемым.) |
![]() |
повторите<T>() | Перегруженные. Повторяет исходную наблюдаемую последовательность, пока она не завершится успешно. (Определяется наблюдаемым.) |
![]() |
повторная попытка<T>(Int32) | Перегруженные. Повторяет исходную наблюдаемую последовательность, пока она не завершится успешно. (Определяется наблюдаемым.) |
![]() |
пример<T>(TimeSpan) | Перегруженные. Примеры наблюдаемой последовательности по каждому интервалу. (Определяется наблюдаемым.) |
![]() |
пример<T>(TimeSpan, IScheduler) | Перегруженные. Примеры наблюдаемой последовательности с каждым интервалом с указанным источником, интервалом и планировщиком. (Определяется наблюдаемым.) |
![]() |
пример<T, TSample>(IObservable<TSample>) | Перегруженные. Примеры наблюдаемой последовательности при выборке галок с указанным источником и образцом. (Определяется наблюдаемым.) |
![]() |
Сканировать<T>(Func<T, T, T>) | Перегруженные. Применяет функцию аккуматора по наблюдаемой последовательности и возвращает каждый промежуточный результат с указанным источником и накопительным элементом. (Определяется наблюдаемым.) |
![]() |
Сканировать<T, TAccumulate>(TAccumulate, Func<TAccumulate, T, TAccumulate>) | Перегруженные. Применяет функцию аккумулятора к наблюдаемой последовательности и возвращает каждый промежуточный результат с указанным источником, начальным и накопительным элементом. (Определяется наблюдаемым.) |
![]() |
Выберите<T, TResult>(Func<T, TResult>) | Перегруженные. Проектируйте каждый элемент наблюдаемой последовательности в новую форму с указанным источником и селектором. (Определяется наблюдаемым.) |
![]() |
Выбрать<T, TResult>(Func<T, Int32, TResult>) | Перегруженные. Проектируйте каждый элемент наблюдаемой последовательности в новую форму, включив индекс элемента с указанным источником и селектором. (Определяется наблюдаемым.) |
![]() |
SelectMany<T, TOther>(IObservable<TOther>) | Перегруженные. Проектирует каждый элемент наблюдаемой последовательности в наблюдаемую последовательность и сглаживает полученные наблюдаемые последовательности в одну наблюдаемую последовательность. (Определяется наблюдаемым.) |
![]() |
SelectMany<T, TResult>(Func<T, IObservable<TResult>>) | Перегруженные. Проектирует каждый элемент наблюдаемой последовательности в наблюдаемую последовательность и сглаживает полученные наблюдаемые последовательности в одну наблюдаемую последовательность. (Определяется наблюдаемым.) |
![]() |
SelectMany<T, TResult>(Func<T, IEnumerable<TResult>>) | Перегруженные. Проектирует каждый элемент наблюдаемой последовательности в наблюдаемую последовательность и сглаживает полученные наблюдаемые последовательности в одну наблюдаемую последовательность. (Определяется наблюдаемым.) |
![]() |
SelectMany<T, TResult>(Func<T, IObservable<TResult>>, Func<Exception, IObservable<TRes>>ult>>, Func<IObservable<TResult ) | Перегруженные. Проектирует каждый элемент наблюдаемой последовательности в наблюдаемую последовательность и сглаживает полученные наблюдаемые последовательности в одну наблюдаемую последовательность. (Определяется наблюдаемым.) |
![]() |
SelectMany<T, TCollection, TResult>(Func<T, IEnumerable<TCollection>>, Func<T, TCollection, TResult>) | Перегруженные. Проектирует каждый элемент наблюдаемой последовательности в наблюдаемую последовательность и сглаживает полученные наблюдаемые последовательности в одну наблюдаемую последовательность. (Определяется наблюдаемым.) |
![]() |
SelectMany<T, TCollection, TResult>(Func<T, IObservable<TCollection>>, Func<T, TCollection, TResult>) | Перегруженные. Проектирует каждый элемент наблюдаемой последовательности в наблюдаемую последовательность и сглаживает полученные наблюдаемые последовательности в одну наблюдаемую последовательность. (Определяется наблюдаемым.) |
![]() |
SequenceEqual<T>(IObservable<T>) | Перегруженные. Определяет, равны ли две последовательности, сравнивая элементы по паре. (Определяется наблюдаемым.) |
![]() |
SequenceEqual<T>(IObservable<T>, IEqualityComparer<T>) | Перегруженные. Определяет, равны ли две последовательности путем сравнения элементов по паре с помощью указанного сравнения равенства. (Определяется наблюдаемым.) |
![]() |
> < > | Перегруженные. Возвращает единственный элемент наблюдаемой последовательности и создает исключение, если в наблюдаемой последовательности нет ни одного элемента. (Определяется наблюдаемым.) |
![]() |
одиночный<T>(Func<T, логический>) | Перегруженные. Возвращает единственный элемент наблюдаемой последовательности, соответствующий предикату, и вызывает исключение, если в наблюдаемой последовательности нет ни одного элемента. (Определяется наблюдаемым.) |
![]() |
SingleOrDefault<T>() | Перегруженные. Возвращает единственный элемент наблюдаемой последовательности или значение по умолчанию, если наблюдаемая последовательность пуста. (Определяется наблюдаемым.) |
![]() |
SingleOrDefault<T>(Func<T, boolean>) | Перегруженные. Возвращает единственный элемент наблюдаемой последовательности, соответствующий предикату, или значение по умолчанию, если значение не найдено. (Определяется наблюдаемым.) |
![]() |
Пропускать<T> | Проходит указанное число значений в наблюдаемой последовательности, а затем возвращает оставшиеся значения. (Определяется наблюдаемым.) |
![]() |
SkipLast<T> | Проходит указанное число элементов в конце наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
SkipUntil<T, TOther> | Возвращает значения из исходной наблюдаемой последовательности только после того, как другая наблюдаемая последовательность создает значение. (Определяется наблюдаемым.) |
![]() |
SkipTime<T>(Func<T, Boolean>) | Перегруженные. Передает значения в наблюдаемой последовательности, если указанное условие имеет значение true, а затем возвращает оставшиеся значения. (Определяется наблюдаемым.) |
![]() |
SkipTime<T>(Func<T, Int32, Boolean>) | Перегруженные. Передает значения в наблюдаемой последовательности, если указанное условие имеет значение true, а затем возвращает оставшиеся значения. (Определяется наблюдаемым.) |
![]() |
StartWith<T>T[]) | Перегруженные. Предустановка последовательности значений в наблюдаемой последовательности с указанным источником и значениями. (Определяется наблюдаемым.) |
![]() |
StartWith<T>(IScheduler, T[]) | Перегруженные. Подготовка последовательности значений к наблюдаемой последовательности с указанным источником, планировщиком и значениями. (Определяется наблюдаемым.) |
![]() |
подписка<T>() | Перегруженные. Вычисляет наблюдаемую последовательность с указанным источником. (Определяется ObservableExtensions.) |
![]() |
подписываться<T>(действие<T>) | Перегруженные. Подписывает обработчик элемента на наблюдаемую последовательность. (Определяется ObservableExtensions.) |
![]() |
подписываться<T>(действие<T>, действие<исключения>) | Перегруженные. Подписывает обработчик элементов и обработчик исключений на наблюдаемую последовательность. (Определяется ObservableExtensions.) |
![]() |
подписываться<T>(действие<T>, действие) | Перегруженные. Подписывает обработчик элементов и обработчик завершения в наблюдаемую последовательность. (Определяется ObservableExtensions.) |
![]() |
подписаться<T>(действие<T>, действие<исключения>, действие) | Перегруженные. Подписывает обработчик элементов, обработчик исключений и обработчик завершения в наблюдаемую последовательность. (Определяется ObservableExtensions.) |
![]() |
Подписка<T>(SynchronizationContext) | Перегруженные. Асинхронно подписывается и отменяет подписки наблюдателей в указанном контексте синхронизации. (Определяется наблюдаемым.) |
![]() |
Подписка на<T>(control) | Перегруженные. (Определяется ControlObservable.) |
![]() |
Подписка<T>(диспетчер) | Перегруженные. (Определяется DispatcherObservable.) |
![]() |
SubscribeOn<T>(DispatcherScheduler) | Перегруженные. (Определяется DispatcherObservable.) |
![]() |
Подписка<T>(IScheduler) | Перегруженные. Асинхронно подписывается и отменяет подписку наблюдателей на указанный планировщик. (Определяется наблюдаемым.) |
![]() |
SubscribeOnDispatcher<T> | (Определяется DispatcherObservable.) |
![]() |
Синхронизация<T>() | Перегруженные. Синхронизирует наблюдаемую последовательность. (Определяется наблюдаемым.) |
![]() |
Синхронизация<T>(объект) | Перегруженные. Синхронизирует наблюдаемую последовательность. (Определяется наблюдаемым.) |
![]() |
Взять<T> | Возвращает указанное число смежных значений из начала наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
TakeLast<T> | Возвращает указанное число смежных элементов из конца наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
TakeUntil<T, TOther> | Возвращает значения из исходной наблюдаемой последовательности, пока другая наблюдаемая последовательность не выдает значение. (Определяется наблюдаемым.) |
![]() |
TakeTime<T>(Func<T, boolean>) | Перегруженные. Возвращает значения из наблюдаемой последовательности до тех пор, пока указанное условие имеет значение true, а затем пропускает оставшиеся значения. (Определяется наблюдаемым.) |
![]() |
TakeTime<T>(Func<T, Int32, Boolean>) | Перегруженные. Возвращает значения из наблюдаемой последовательности до тех пор, пока указанное условие имеет значение true, а затем пропускает оставшиеся значения. (Определяется наблюдаемым.) |
![]() |
затем<T, TResult> | Соответствует, если наблюдаемая последовательность имеет доступное значение и проектировало значение. (Определяется наблюдаемым.) |
![]() |
T<>T (TimeSpan) | Перегруженные. Игнорирует значения из наблюдаемой последовательности, за которой следует другое значение до времени выполнения с указанным источником и dueTime. (Определяется наблюдаемым.) |
![]() |
<T>(TimeSpan, IScheduler) | Перегруженные. Игнорирует значения из наблюдаемой последовательности, за которой следует другое значение перед временем выполнения с указанным источником, dueTime и планировщиком. (Определяется наблюдаемым.) |
![]() |
TimeInterval<T>() | Перегруженные. Записывает интервал времени между последовательными значениями в наблюдаемой последовательности с указанным источником. (Определяется наблюдаемым.) |
![]() |
TimeInterval<T>(IScheduler) | Перегруженные. Записывает интервал времени между последовательными значениями в наблюдаемой последовательности с указанным источником и планировщиком. (Определяется наблюдаемым.) |
![]() |
время ожидания<T>(TimeSpan) | Перегруженные. Возвращает наблюдаемую последовательность или timeoutException, если срок действия dueTime истекает. (Определяется наблюдаемым.) |
![]() |
время ожидания<T>(DateTimeOffset) | Перегруженные. Возвращает наблюдаемую последовательность или тайм-аутException, если время выполнения истекает. (Определяется наблюдаемым.) |
![]() |
время ожидания<T>(TimeSpan, IObservable<T>) | Перегруженные. Возвращает исходную наблюдаемую последовательность или другую наблюдаемую последовательность в случае истечения времени dueTime. (Определяется наблюдаемым.) |
![]() |
время ожидания<T>(DateTimeOffset, IObservable<T>) | Перегруженные. Возвращает наблюдаемую последовательность или timeoutException, если срок действия dueTime истекает. (Определяется наблюдаемым.) |
![]() |
время ожидания<T>(TimeSpan, IScheduler) | Перегруженные. Возвращает наблюдаемую последовательность или timeoutException, если срок действия dueTime истекает. (Определяется наблюдаемым.) |
![]() |
время ожидания<T>(DateTimeOffset, IScheduler) | Перегруженные. Возвращает наблюдаемую последовательность или timeoutException, если срок действия dueTime истекает. (Определяется наблюдаемым.) |
![]() |
время ожидания<T>(TimeSpan, IObservable<T>, IScheduler) | Перегруженные. Возвращает исходную наблюдаемую последовательность или другую наблюдаемую последовательность в случае истечения времени dueTime. (Определяется наблюдаемым.) |
![]() |
время ожидания<T>(DateTimeOffset, IObservable<T>, IScheduler) | Перегруженные. Возвращает исходную наблюдаемую последовательность или другую наблюдаемую последовательность в случае истечения времени dueTime. (Определяется наблюдаемым.) |
![]() |
метка времени<T>() | Перегруженные. Записывает метку времени для каждого значения в наблюдаемой последовательности с указанным источником. (Определяется наблюдаемым.) |
![]() |
метка времени<T>(IScheduler) | Перегруженные. Записывает метку времени для каждого значения в наблюдаемой последовательности с указанным источником и планировщиком. (Определяется наблюдаемым.) |
![]() |
ToArray<T> | Создает массив из наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
ToDictionary<T, TKey>(Func<T, TKey>) | Перегруженные. Создает словарь из наблюдаемой последовательности в соответствии с указанной функцией селектора ключей. (Определяется наблюдаемым.) |
![]() |
ToDictionary<T, TKey>(Func<T, TKey>, IEqualityComparer<TKey>) | Перегруженные. Создает словарь из наблюдаемой последовательности в соответствии с указанной функцией селектора ключей и компратором. (Определяется наблюдаемым.) |
![]() |
ToDictionary<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>) | Перегруженные. Создает словарь из наблюдаемой последовательности в соответствии с указанной функцией селектора ключей и функцией селектора элементов. (Определяется наблюдаемым.) |
![]() |
ToDictionary<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>, IEqualityComparer<TKey>) | Перегруженные. Создает словарь из наблюдаемой последовательности в соответствии с указанной функцией селектора ключей, компратором и функцией селектора элементов. (Определяется наблюдаемым.) |
![]() |
ToEnumerable<T> | Преобразует наблюдаемую последовательность в перечисленную последовательность. (Определяется наблюдаемым.) |
![]() |
ToEvent<T> | Предоставляет наблюдаемую последовательность как объект с событием .NET с указанным источником. (Определяется наблюдаемым.) |
![]() |
ToList<T> | Создает список из наблюдаемой последовательности. (Определяется наблюдаемым.) |
![]() |
ToLookup<T, TKey>(Func<T, TKey>) | Перегруженные. Создает подстановку из наблюдаемой последовательности в соответствии с указанной функцией селектора ключей. (Определяется наблюдаемым.) |
![]() |
ToLookup<T, TKey>(Func<T, TKey>, IEqualityComparer<TKey>) | Перегруженные. Создает подстановку из наблюдаемой последовательности в соответствии с указанной функцией селектора ключей и компратором. (Определяется наблюдаемым.) |
![]() |
ToLookup<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>) | Перегруженные. Создает подстановку из наблюдаемой последовательности в соответствии с указанной функцией селектора ключей и функцией селектора элементов. (Определяется наблюдаемым.) |
![]() |
ToLookup<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>, IEqualityComparer<TKey>) | Перегруженные. Создает подстановку из наблюдаемой последовательности в соответствии с указанной функцией селектора ключей, компратором и функцией селектора элементов. (Определяется наблюдаемым.) |
![]() |
ToTask<T>() | Перегруженные. Возвращает задачу, содержащую последнее значение наблюдаемой последовательности. (Определяется TaskObservableExtensions.) |
![]() |
ToTask<T>(object) | Перегруженные. Возвращает задачу, содержащую последнее значение наблюдаемой последовательности. (Определяется TaskObservableExtensions.) |
![]() |
ToTask<T>(CancellationToken) | Перегруженные. Возвращает задачу, содержащую последнее значение наблюдаемой последовательности. (Определяется TaskObservableExtensions.) |
![]() |
ToTask<T>(CancellationToken, Object) | Перегруженные. Возвращает задачу, содержащую последнее значение наблюдаемой последовательности. (Определяется TaskObservableExtensions.) |
![]() |
Где<T>(Func<T, Логические>) | Перегруженные. Фильтрует элементы наблюдаемой последовательности на основе предиката. (Определяется наблюдаемым.) |
![]() |
Где<T>(Func<T, Int32, Boolean>) | Перегруженные. Фильтрует элементы наблюдаемой последовательности на основе предиката, включив индекс элемента. (Определяется наблюдаемым.) |
![]() |
окно<T>(Int32) | Перегруженные. Проекты каждого элемента наблюдаемой последовательности в последовательные не перекрывающиеся окна, создаваемые на основе сведений о количестве элементов. (Определяется наблюдаемым.) |
![]() |
окне<T>(TimeSpan) | Перегруженные. Проекты каждого элемента наблюдаемой последовательности в последовательные не перекрывающиеся окна, создаваемые на основе сведений о времени. (Определяется наблюдаемым.) |
![]() |
окно<T>(Int32, Int32) | Перегруженные. Проекты каждого элемента наблюдаемой последовательности в ноль или более окон, создаваемых на основе сведений о количестве элементов. (Определяется наблюдаемым.) |
![]() |
окно<T>(TimeSpan, IScheduler) | Перегруженные. Проекты каждого элемента наблюдаемой последовательности в последовательные не перекрывающиеся окна, создаваемые на основе сведений о времени. (Определяется наблюдаемым.) |
![]() |
< >(timeSpan, TimeSpan) | Перегруженные. Проекты каждого элемента наблюдаемой последовательности в ноль или более окон, которые создаются на основе сведений о времени. (Определяется наблюдаемым.) |
![]() |
окно<T>(TimeSpan, Int32) | Перегруженные. Проектирует каждый элемент наблюдаемой последовательности в окно, которое завершается, когда оно заполнено или истекло определенное время. (Определяется наблюдаемым.) |
![]() |
окно<T>(TimeSpan, TimeSpan, IScheduler) | Перегруженные. Проекты каждого элемента наблюдаемой последовательности в ноль или более окон, которые создаются на основе сведений о времени. (Определяется наблюдаемым.) |
![]() |
окно<T>(TimeSpan, Int32, IScheduler) | Перегруженные. Проектирует каждый элемент наблюдаемой последовательности в окно, которое завершается, когда оно заполнено или истекло определенное время. (Определяется наблюдаемым.) |
![]() |
Window<T, TWindowClosing>(Func<IObservable<TWindowClosing>>) | Перегруженные. Проектируют каждый элемент наблюдаемой последовательности в последовательные не перекрывающиеся окна. (Определяется наблюдаемым.) |
![]() |
Window<T, TWindowOpening, TWindowClosing>(IObservable<TWindowOpening>, Func<TWindowOpening, IObservable<TWindowClosing>>) | Перегруженные. Проекты каждого элемента наблюдаемой последовательности в ноль или более окон. (Определяется наблюдаемым.) |
![]() |
Zip<T, TSecond, TResult>(IObservable<TSecond>, Func<T, TSecond, TResult> ) | Перегруженные. Объединяет две наблюдаемые последовательности в одну наблюдаемую последовательность, сочетая их элементы в парной форме. (Определяется наблюдаемым.) |
![]() |
Zip<T, TSecond, TResult>(IEnumerable<TSecond>, Func<T, TSecond, TResult>) | Перегруженные. Объединяет наблюдаемую последовательность и перечисленную последовательность в одну наблюдаемую последовательность с помощью функции селектора. (Определяется наблюдаемым.) |
Вверх
Замечания
Холодные наблюдаемые объекты начинают работать при подписке, т. е. наблюдаемая последовательность начинает отправлять значения только наблюдателям при вызове подписки. Значения также не предоставляются подписчикам. Это отличается от горячих наблюдаемых событий, таких как события перемещения мыши или тикеры акций, которые уже создают значения, даже прежде чем подписка активна. Когда наблюдатель подписывается на горячую наблюдаемую последовательность, она получит текущее значение в потоке. Горячая наблюдаемая последовательность предоставляется всем подписчикам, и каждый подписчик отправляет следующее значение в последовательности. Например, даже если никто не подписался на определенный тикер акций, тикер будет продолжать обновлять свою стоимость на основе движения рынка. Когда подписчик регистрирует интерес к этому тикеру, он автоматически получит последний галок.
Примеры
В следующем примере мы преобразуем источник холодной наблюдаемой последовательности в горячий, используя оператор Publish, который возвращает экземпляр IConnectableObservable<T>, который мы именуем горячим. Оператор публикации предоставляет механизм совместного использования подписок путем трансляции одной подписки нескольким подписчикам. hot действует как прокси-сервер и подписывается на источник, а затем по мере получения значений из источника отправляет их собственным подписчикам. Чтобы установить подписку на резервный источник и начать получение значений, мы используем метод IConnectableObservable.Connect(). Так как IConnectableObservable наследует IObservable, мы можем использовать подписку на эту горячую последовательность даже до запуска. Обратите внимание, что в примере горячая последовательность не была запущена, когда подписка на подписку на нее подписывается. Таким образом, никакое значение не передается подписчику. После вызова Connect значения затем отправляются в подписку1. После задержки в течение 3 секунд подписка 2 подписывается на горячую подписку и начинает получать значения сразу из текущей позиции (3 в этом случае) до конца. Выходные данные выглядят следующим образом:
Current Time: 6/1/2011 3:38:49 PM
Current Time after 1st subscription: 6/1/2011 3:38:49 PM
Current Time after Connect: 6/1/2011 3:38:52 PM
Observer 1: OnNext: 0
Observer 1: OnNext: 1
Current Time just before 2nd subscription: 6/1/2011 3:38:55 PM
Observer 1: OnNext: 2
Observer 1: OnNext: 3
Observer 2: OnNext: 3
Observer 1: OnNext: 4
Observer 2: OnNext: 4
Console.WriteLine("Current Time: " + DateTime.Now);
var source = Observable.Interval(TimeSpan.FromSeconds(1)); //creates a sequence
IConnectableObservable<long> hot = Observable.Publish<long>(source); // convert the sequence into a hot sequence
IDisposable subscription1 = hot.Subscribe( // no value is pushed to 1st subscription at this point
x => Console.WriteLine("Observer 1: OnNext: {0}", x),
ex => Console.WriteLine("Observer 1: OnError: {0}", ex.Message),
() => Console.WriteLine("Observer 1: OnCompleted"));
Console.WriteLine("Current Time after 1st subscription: " + DateTime.Now);
Thread.Sleep(3000); //idle for 3 seconds
hot.Connect(); // hot is connected to source and starts pushing value to subscribers
Console.WriteLine("Current Time after Connect: " + DateTime.Now);
Thread.Sleep(3000); //idle for 3 seconds
Console.WriteLine("Current Time just before 2nd subscription: " + DateTime.Now);
IDisposable subscription2 = hot.Subscribe( // value will immediately be pushed to 2nd subscription
x => Console.WriteLine("Observer 2: OnNext: {0}", x),
ex => Console.WriteLine("Observer 2: OnError: {0}", ex.Message),
() => Console.WriteLine("Observer 2: OnCompleted"));
Console.ReadKey();