Export (0) Print
Expand All

Observable.Synchronize(Of TSource) Method (IObservable(Of TSource))

Synchronizes the observable sequence.

Namespace:  System.Reactive.Linq
Assembly:  System.Reactive (in 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()

Type Parameters

TSource

The type source.

Parameters

source
Type: System.IObservable(Of TSource)
The source sequence.

Return Value

Type: System.IObservable(Of 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(Of 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(Of TSource)(IObservable(Of 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