<PackageReference Include="System.Reactive" Version="4.0.0-preview.2.build.379" />
Empty<TResult>
using System.
Reactive.
Concurrency;
namespace System.
Reactive.
Linq.
ObservableImpl
{
internal sealed class Empty<
TResult> :
Producer<
TResult,
Empty<
TResult>.
_>
{
internal sealed class _ :
Sink<
TResult>
{
public _(
IObserver<
TResult>
observer,
IDisposable cancel)
:
base(
observer,
cancel)
{
}
public IDisposable Run(
IScheduler scheduler)
{
return scheduler.
Schedule(
Invoke);
}
private void Invoke()
{
_observer.
OnCompleted();
base.
Dispose();
}
}
private readonly IScheduler _scheduler;
public Empty(
IScheduler scheduler)
{
_scheduler =
scheduler;
}
protected override _ CreateSink(
IObserver<
TResult>
observer,
IDisposable cancel)
{
return new _(
observer,
cancel);
}
protected override IDisposable Run(
_ sink)
{
return sink.
Run(
_scheduler);
}
}
}