Avoid infinite generics recursion in SynchronizationContextScheduler
@@ -93,7 +93,8 @@ namespace System.Reactive.Concurrency
return Schedule(state, action);
}
- return DefaultScheduler.Instance.Schedule((scheduler: this, action, state), dt, (_, tuple) => tuple.scheduler.Schedule(tuple.state, tuple.action));
+ // Note that avoiding closure allocation here would introduce infinite generic recursion over the TState argument
+ return DefaultScheduler.Instance.Schedule(state, dt, (_, state1) => Schedule(state1, action));