Exemplo n.º 1
0
        public void Start()
        {
            _queue.DispatchSync(() =>
            {
                if (_started || Url?.IsLoopback == true)
                {
                    return;
                }

                _started = true;

                if (String.IsNullOrEmpty(Url?.Host))
                {
                    _ref = new NetworkReachability(new IPAddress(0));
                }
                else
                {
                    _ref = new NetworkReachability(Url.Host);
                }

                _ref.SetDispatchQueue(_queue);
                _ref.SetNotification(ClientCallback);
                if (_ref.GetFlags(out var flags) == StatusCode.OK)
                {
                    WriteLog.To.Sync.I(Tag, $"{this}: flags={flags}; starting...");
                    NotifyFlagsChanged(flags);
                }