private void NetworkChange_NetworkAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e) { ConnectionStatus current = e.IsAvailable ? ConnectionStatus.Connected : ConnectionStatus.Disconnected; bool changed = false; lock (syncRoot) { if (this.connectionStatus != current) { this.connectionStatus = current; changed = true; } } if (this.NetworkStatusChanged != null) { if (changed) { NetworkStatusChangedEventArgs networkStatusChangedEventArgs = new NetworkStatusChangedEventArgs(current); this.NetworkStatusChanged(this, networkStatusChangedEventArgs); } } }