using System.Reactive.Linq;
using System.Reactive.Subjects;
using System.Threading.Tasks;
var subjA = new Subject<int>();
var subjB = new Subject<Unit>();
Observable.Return(n).Delay(TimeSpan.FromMilliseconds(200))
.Subscribe(s => Console.WriteLine(s));
await Task.WhenAll(EmitA(), EmitB(), Task.Delay(2000));
subjB!.OnNext(Unit.Default);