Поделиться через


Метод 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);
});

См. также:

Ссылка

Наблюдаемый класс

Синхронизация перегрузки

Пространство имен System.Reactive.Linq