Esempio n. 1
0
 public void SetTarget(T target)
 {
     lock (_managedWeakReference)
     {
         _managedWeakReference.SetTarget(target);
         if (target is object && ComWrappersSupport.TryUnwrapObject(target, out _))
         {
             _nativeWeakReference = target.As <IWeakReferenceSource>().GetWeakReference();
         }
     }
 }
Esempio n. 2
0
 public void SetTarget(T target)
 {
     lock (_managedWeakReference)
     {
         _managedWeakReference.SetTarget(target);
     }
 }
Esempio n. 3
0
        public static T FindOrCreate <T>(this System.WeakReference <T> wr, Func <T> factory) where T : class
        {
            T value;

            if (!wr.TryGetTarget(out value))
            {
                value = factory();
                wr.SetTarget(value);
            }
            return(value);
        }