Observable.Synchronize<TSource> メソッド (IObservable<TSource>)
監視可能なシーケンスを同期します。
Namespace: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 メソッドは、オブザーバー メソッド (OnNext、OnCompletion、OnError) への発信呼び出しを同期する TSource 型の監視可能なシーケンスを返します。 これは、ゲート オブジェクトの相互排他ロックを取得することによって実現されます。 Synchronize メソッドのもう 1 つのオーバーロードを使用すると、独自のゲート オブジェクト (Synchronize<TSource(IObservable<TSource>>, Object) を指定できます。
Synchronize メソッドのこのオーバーロードにより、サブスクリプションごとに新しいゲート オブジェクトが作成されます。 次のようになります。
return Defer(() =>
{
var gate = new object();
return Synchronize(gate);
});