private static ThroughputTestResult RunExtremeCompiledInpcObs() { var count = 0; var person = new PersonOpt(); using (person.OnPropertyChangesCompiled(p => p.Age) .Subscribe(newAge => count = newAge)) { var result = new ThroughputTestResult(1, MessageCount); for (int i = 0; i < MessageCount; i++) { person.Age = i; } result.Dispose(); return(result); } }
private static ThroughputTestResult RunUnitInpcObs() { var count = 0; var person = new PersonOpt(); using (person.ToObservable() .Select(_ => Unit.Default) .Subscribe(newAge => count++)) { var result = new ThroughputTestResult(1, MessageCount); for (int i = 0; i < MessageCount; i++) { person.Age = i; } result.Dispose(); return(result); } }
private static ThroughputTestResult RunOptInpcEvt() { var count = 0; var person = new PersonOpt(); PropertyChangedEventHandler handler = (s, e) => { if (e.PropertyName == "Age") { count = person.Age; } }; person.PropertyChanged += handler; var result = new ThroughputTestResult(1, MessageCount); for (int i = 0; i < MessageCount; i++) { person.Age = i; } result.Dispose(); person.PropertyChanged -= handler; return(result); }