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); } } } }
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()); } } }