public void AddCounter()
        {
            var logger  = new InstrumentLogger();
            var counter = new Counter()
                          .Register(logger)
                          .Register(new RuleEngine())
                          .Register(new InstrumentWindowUI());

            Trace.WriteLine("----------- 1 -----------");
            counter++;
            counter++;
            counter++;
            Trace.WriteLine("----------- 2 -----------");
            counter.Unregister(logger);
            counter++;
        }
        public void AddCounter()
        {
            var counter = new Counter();
            var logger  = new InstrumentLogger();

            counter.OnChanged += logger.Process;    // = Register()
            counter.OnChanged += (x) => { Trace.WriteLine("display new value " + x); };
            counter.OnChanged += (x) => { if (x >= 3)
                                          {
                                              Trace.WriteLine("Alert " + x);
                                          }
            };
            Trace.WriteLine("----------- 1 -----------");
            counter++;
            counter++;
            counter++;
            Trace.WriteLine("----------- 2 -----------");
            counter.OnChanged -= logger.Process;    // = Unregister()
            counter++;
        }