Ejemplo n.º 1
0
    static RXWeak()
    {
        _listeners = new List <RXWeakListener>();

        //this will trigger CleanUp to be called every time the Garbage Collector is run
        RXGCTrigger.AddCallback(CleanUp);
    }
Ejemplo n.º 2
0
 public static void RemoveCallback(Action SignalGC)
 {
     for (int w = 0; w < weakRefs.Count; w++)
     {
         RXGCTrigger trigger = (weakRefs[w].Target as RXGCTrigger);
         if (trigger != null && trigger.SignalGC == SignalGC)
         {
             trigger.shouldStop = true;
             weakRefs.RemoveAt(w);
             w--;
         }
     }
 }
Ejemplo n.º 3
0
    public static void AddCallback(Action SignalGC)
    {
        for (int w = 0; w < weakRefs.Count; w++)
        {
            RXGCTrigger trigger = (weakRefs[w].Target as RXGCTrigger);
            if (trigger != null && trigger.SignalGC == SignalGC)
            {
                return;                                                             //we already have it so don't add it again!
            }
        }

        new RXGCTrigger(SignalGC);
    }