Метод Observable.Synchronize<TSource> (IObservable<TSource>)
Синхронизирует наблюдаемую последовательность.
Пространство имен:System.Reactive.Linq
Сборки: System.Reactive (в System.Reactive.dll)
Синтаксис
'Declaration
<ExtensionAttribute> _
Public Shared Function Synchronize(Of TSource) ( _
source As IObservable(Of TSource) _
) As IObservable(Of TSource)
'Usage
Dim source As IObservable(Of TSource)
Dim returnValue As IObservable(Of TSource)
returnValue = source.Synchronize()
public static IObservable<TSource> Synchronize<TSource>(
this IObservable<TSource> source
)
[ExtensionAttribute]
public:
generic<typename TSource>
static IObservable<TSource>^ Synchronize(
IObservable<TSource>^ source
)
static member Synchronize :
source:IObservable<'TSource> -> IObservable<'TSource>
JScript does not support generic types and methods.
Параметры типа
- TSource
Источник типа.
Параметры
- source
Тип: System.IObservable<TSource>
Исходная последовательность.
Возвращаемое значение
Тип: System.IObservable<TSource>
Исходная последовательность, исходящие вызовы которой синхронизируются с наблюдателями.
Примечание об использовании
В Visual Basic и C# этот метод можно вызвать как метод экземпляра для любого объекта типа IObservable<TSource>. При вызове метода для экземпляра следует опускать первый параметр. Дополнительные сведения см. в разделе или .
Комментарии
Этот метод Synchronize возвращает наблюдаемую последовательность типа TSource, которая синхронизирует исходящие вызовы с методами наблюдателя (OnNext, OnCompletion, OnError). Это достигается путем получения блокировки взаимного исключения для объекта шлюза . Другая перегрузка метода Synchronize позволяет предоставить собственный объект шлюза: (Synchronize<TSource>(IObservable<TSource>, Object).
Эта перегрузка метода Synchronize создаст новый объект шлюза для каждой подписки. Это выглядит примерно так:
return Defer(() =>
{
var gate = new object();
return Synchronize(gate);
});