Observable.Synchronize<TSource> Method (IObservable<TSource>)
Synchronizes the observable sequence.
Namespace: System.Reactive.Linq
Assembly: System.Reactive (in System.Reactive.dll)
Syntax
'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.
Type Parameters
- TSource
The type source.
Parameters
- source
Type: System.IObservable<TSource>
The source sequence.
Return Value
Type: System.IObservable<TSource>
The source sequence whose outgoing calls to observers are synchronized.
Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type IObservable<TSource>. When you use instance method syntax to call this method, omit the first parameter. For more information, see or .
Remarks
This Synchronize method returns an observable sequence of the type TSource which synchronizes outgoing calls to the observer methods (OnNext, OnCompletion, OnError). This is accomplished by acquiring a mutual-exclusion lock for a gate object. Another overload of the Synchronize method allows you to provide your own gate object: (Synchronize<TSource>(IObservable<TSource>, Object).
This overload of the Synchronize method will create a new gate object for each subscription. Similar to the following:
return Defer(() =>
{
var gate = new object();
return Synchronize(gate);
});