visual qué que programador programacion net necesita mas lenguajes lenguaje herramientas ejemplos desarrollador demandados curso c# system.reactive

c# - que - qué es un desarrollador net



¿Cuáles son los programadores predeterminados para cada operador observable? (1)

Esta página en MSDN establece que

Si no usa la sobrecarga que toma un programador como argumento, Rx seleccionará un planificador predeterminado utilizando el principio de menor concurrencia. Esto significa que se elige el planificador que introduce la menor cantidad de concurrencia que satisfaga las necesidades del operador. Por ejemplo, para los operadores que devuelven un observable con un número finito y pequeño de mensajes, Rx llama Inmediato. Para los operadores que devuelven una cantidad potencialmente grande o infinita de mensajes, se llama a CurrentThread. Para los operadores que usan temporizadores, se usa ThreadPool.

Me gustaría tener una hoja de referencia para la cual los operadores observables usen el Programador predeterminado, pero no puedo encontrar uno en ninguna parte. ¿Cuáles son los programadores predeterminados para cada operador observable?


Wow, eso no fue trivial de encontrar ...

En las profundidades del System.Reactive.Concurrency nombres System.Reactive.Concurrency , hay una clase interna estática llamada SchedulerDefaults , que se declara como:

internal static class SchedulerDefaults { internal static IScheduler AsyncConversions { get { return DefaultScheduler.Instance; }} internal static IScheduler ConstantTimeOperations { get { return ImmediateScheduler.Instance; }} internal static IScheduler Iteration { get { return CurrentThreadScheduler.Instance; }} internal static IScheduler TailRecursion { get { return ImmediateScheduler.Instance; }} internal static IScheduler TimeBasedOperations { get { return DefaultScheduler.Instance; }} }

AsyncConversions es utilizado por:

Start, ToAsync, FromAsyncPattern

ConstantTimeOperations es utilizado por:

Empty, GetSchedulerForCurrentContext, Return, StartWith, Throw

Iteration es utilizada por:

Generate, Range, Repeat, TakeLast, ToObservable, and the ReplaySubject<T>

TailRecursion es utilizado por:

Run

TimeBasedOperations es utilizado por:

Buffer, Delay, DelaySubscription, Generate, Interval, Sample, Skip, SkipLast SkipUntil, Take, TakeLast, TakeLastBuffer, TakeUntil, Throttle, TimeInterval, Timeout, Timer, Timestamp, Window