TaskObservationOptions
Controls how completion or failure is handled when a  Task or
             Task<T> is wrapped as an  IObservable<T> and observed by
            an  IObserver<T>.
            
                using System.Runtime.CompilerServices;
namespace System.Reactive.Concurrency
{
    [System.Runtime.CompilerServices.NullableContext(2)]
    [System.Runtime.CompilerServices.Nullable(0)]
    public sealed class TaskObservationOptions
    {
        [System.Runtime.CompilerServices.Nullable(0)]
        internal readonly struct Value
        {
            public IScheduler Scheduler { get; }
            public bool IgnoreExceptionsAfterUnsubscribe { get; }
            internal Value(IScheduler scheduler, bool ignoreExceptionsAfterUnsubscribe)
            {
                Scheduler = scheduler;
                IgnoreExceptionsAfterUnsubscribe = ignoreExceptionsAfterUnsubscribe;
            }
        }
        public IScheduler Scheduler { get; }
        public bool IgnoreExceptionsAfterUnsubscribe { get; }
        public TaskObservationOptions(IScheduler scheduler, bool ignoreExceptionsAfterUnsubscribe)
        {
            Scheduler = scheduler;
            IgnoreExceptionsAfterUnsubscribe = ignoreExceptionsAfterUnsubscribe;
        }
        internal Value ToValue()
        {
            return new Value(Scheduler, IgnoreExceptionsAfterUnsubscribe);
        }
    }
}