Export (0) Print
Expand All

Observable.Synchronize<TSource> Method (IObservable<TSource>)

Synchronizes the observable sequence.

Namespace:  System.Reactive.Linq
Assembly:  System.Reactive (in System.Reactive.dll)

public static IObservable<TSource> Synchronize<TSource>(
	this IObservable<TSource> source
)

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 http://msdn.microsoft.com/en-us/library/bb384936(v=vs.103).aspx or http://msdn.microsoft.com/en-us/library/bb383977(v=vs.103).aspx.

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);
});
Show:
© 2014 Microsoft