public Task ConnectAsync()
        {
            var source = new TaskCompletionSource <object>();

            _handler.EnqueueMessage(new StartConnectionMessage(source, _endPointDiscoverer));
            return(source.Task);
        }
        public Task ConnectAsync()
        {
            var source = new TaskCompletionSource <object>(TaskCreationOptions.RunContinuationsAsynchronously);

            _handler.EnqueueMessage(new StartConnectionMessage(source, _endPointDiscoverer));
            return(source.Task);
        }