From 88519cab089ef18dbac60adf63e5ae67a05c9e90 Mon Sep 17 00:00:00 2001 From: localhorst Date: Sat, 4 May 2019 12:24:40 +0200 Subject: [PATCH] react subjects --- .../ConsoleAppReact/ConsoleAppReact.csproj | 17 ++++++ ConsoleAppReact/ConsoleAppReact/Program.cs | 56 ++++++++++++++++++- .../ConsoleAppReact/SampleEventArgs.cs | 6 ++ .../ConsoleAppReact/packages.config | 7 +++ 4 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 ConsoleAppReact/ConsoleAppReact/SampleEventArgs.cs create mode 100644 ConsoleAppReact/ConsoleAppReact/packages.config diff --git a/ConsoleAppReact/ConsoleAppReact/ConsoleAppReact.csproj b/ConsoleAppReact/ConsoleAppReact/ConsoleAppReact.csproj index 1839e62..379cff8 100644 --- a/ConsoleAppReact/ConsoleAppReact/ConsoleAppReact.csproj +++ b/ConsoleAppReact/ConsoleAppReact/ConsoleAppReact.csproj @@ -35,19 +35,36 @@ + + ..\packages\System.Reactive.4.1.5\lib\net46\System.Reactive.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\System.Threading.Tasks.Extensions.4.5.2\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll + + + ..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + + + + + + \ No newline at end of file diff --git a/ConsoleAppReact/ConsoleAppReact/Program.cs b/ConsoleAppReact/ConsoleAppReact/Program.cs index 78e43b8..e5faac9 100644 --- a/ConsoleAppReact/ConsoleAppReact/Program.cs +++ b/ConsoleAppReact/ConsoleAppReact/Program.cs @@ -1,7 +1,10 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reactive.Linq; +using System.Reactive.Subjects; using System.Text; +using System.Threading; using System.Threading.Tasks; namespace ConsoleAppReact @@ -10,6 +13,57 @@ namespace ConsoleAppReact { static void Main(string[] args) { + /* + var calc = new Calc(); + calc.Subject.Subscribe((i) => { Console.WriteLine("RX: " + i); }); + calc.Subject.Throttle(TimeSpan.FromSeconds(10)).Subscribe((i) => { Console.WriteLine("RX (Throttle): " + i); }); + calc.add(1, 5); + */ + + var d = new DoIt(); + + /* + d.DoIt2(1,2).Subscribe((i) => + { Console.WriteLine("RX (doit2): " + i); }); +*/ + + d.DoIt2(1, 2).Sample(TimeSpan.Zero).Subscribe((i) => + { Console.WriteLine("RX (doit2, Sample): " + i); }); + + Console.Read(); } } -} + + public class DoIt + { + + public IObservable DoIt2(int i1, int i2) + { + var calc = new Calc(); + calc.add(1, 5); + + return calc.Subject; + + } + + + } + + public class Calc + { + //public Subject Subject = new Subject(); + + public ReplaySubject Subject = new ReplaySubject(); + + public void add(int i1, int i2) + { + int res = 0; + + for (int i = 0; i < 1000; i++) + { + res += i1 + i2; + Subject.OnNext(res); + } + } + } +} \ No newline at end of file diff --git a/ConsoleAppReact/ConsoleAppReact/SampleEventArgs.cs b/ConsoleAppReact/ConsoleAppReact/SampleEventArgs.cs new file mode 100644 index 0000000..53545e9 --- /dev/null +++ b/ConsoleAppReact/ConsoleAppReact/SampleEventArgs.cs @@ -0,0 +1,6 @@ +namespace ConsoleAppReact +{ + public class SampleEventArgs + { + } +} \ No newline at end of file diff --git a/ConsoleAppReact/ConsoleAppReact/packages.config b/ConsoleAppReact/ConsoleAppReact/packages.config new file mode 100644 index 0000000..4de8e1b --- /dev/null +++ b/ConsoleAppReact/ConsoleAppReact/packages.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file