Beispiel #1
0
        public void ScenarioWithSmartEventSourceNoRoot()
        {
            Debug.WriteLine("!!! Start diagnostics !!! ");

            var source   = new SmartEventSource();;
            var listener = new ConventionalEventListener(source);

            source.RaiseEvent(EventArgs.Empty);

            Debug.WriteLine("Setting listener to null.");
            listener = null;

            AttemptToTriggerGC();

            source.RaiseEvent(EventArgs.Empty);

            Debug.WriteLine("Setting source to null.");
            source = null;

            AttemptToTriggerGC();
        }
Beispiel #2
0
        public void AllConventionalAndFails()
        {
            Debug.WriteLine("!!! Start diagnostics !!! ");

            EventSource source = new EventSource();

            var listener = new ConventionalEventListener(source);

            source.Raise();

            Debug.WriteLine("Setting listener to null.");
            listener = null;

            AttemptToTriggerGC();

            source.Raise();

            Debug.WriteLine("Setting source to null.");
            source = null;

            AttemptToTriggerGC();
        }
Beispiel #3
0
        public void SmartEventSourceMethodGroup()
        {
            Debug.WriteLine("!!! Start diagnostics !!! ");

            var source = new SmartEventSource();;

            var listener = new ConventionalEventListener();

            source.Event += listener.OnEvent;

            source.RaiseEvent(EventArgs.Empty);

            Debug.WriteLine("Setting listener to null.");
            listener = null;

            AttemptToTriggerGC();

            source.RaiseEvent(EventArgs.Empty);

            Debug.WriteLine("Setting source to null.");
            source = null;

            AttemptToTriggerGC();
        }
Beispiel #4
0
        public void ModifiedSmartSourceWithClosure()
        {
            Debug.WriteLine("!!! Start diagnostics !!! ");

            var source = new SmartEventSource();;

            var listener = new ConventionalEventListener();

            source.Event += (s, args) => listener.OnEvent(s, args);

            source.RaiseEvent(EventArgs.Empty);

            Debug.WriteLine("Setting listener to null.");
            listener = null;

            AttemptToTriggerGC();

            source.RaiseEvent(EventArgs.Empty);

            Debug.WriteLine("Setting source to null.");
            source = null;

            AttemptToTriggerGC();
        }