Beispiel #1
0
 internal static void Stop(NetworkAvailabilityChangedEventHandler caller)
 {
     lock (syncObject){
         s_availabilityCallerArray.Remove(caller);
         if (s_availabilityCallerArray.Count == 0)
         {
             AddressChangeListener.Stop(addressChange);
         }
     }
 }
 internal static void Stop(NetworkAvailabilityChangedEventHandler?caller)
 {
     if (caller != null)
     {
         lock (s_globalLock)
         {
             s_availabilityChangedSubscribers.Remove(caller);
             if (s_availabilityChangedSubscribers.Count == 0)
             {
                 AddressChangeListener.Stop(s_addressChange);
             }
         }
     }
 }
Beispiel #3
0
            internal static void Start(NetworkAvailabilityChangedEventHandler caller)
            {
                lock (syncObject){
                    if (s_availabilityCallerArray.Count == 0)
                    {
                        isAvailable = NetworkInterface.GetIsNetworkAvailable();
                        AddressChangeListener.UnsafeStart(addressChange);
                    }

                    if ((caller != null) && (!s_availabilityCallerArray.Contains(caller)))
                    {
                        s_availabilityCallerArray.Add(caller, ExecutionContext.Capture());
                    }
                }
            }
            internal static void Start(NetworkAvailabilityChangedEventHandler?caller)
            {
                if (caller != null)
                {
                    lock (s_globalLock)
                    {
                        if (s_availabilityChangedSubscribers.Count == 0)
                        {
                            s_isAvailable = NetworkInterface.GetIsNetworkAvailable();
                            AddressChangeListener.UnsafeStart(s_addressChange);
                        }

                        s_availabilityChangedSubscribers.TryAdd(caller, ExecutionContext.Capture());
                    }
                }
            }