Пример #1
0
        public async Task <bool> Connect()
        {
            bool connected       = false;
            bool failedToConnect = false;

            _clientRpc.OnConnected       += () => connected = true;
            _clientRpc.OnFailedToConnect += (ex) => failedToConnect = true;
            _clientRpc.OnDisconnected    += () => connected = false;
            _clientRpc.Connect("localhost", 13);

            var timeout = new CancellationTokenSource();

            timeout.CancelAfter(_connectTimeout);
            await Task.Run(() => {
                while (!connected && !failedToConnect)
                {
                    Task.Delay(TimeSpan.FromSeconds(.5f));
                }
            }, timeout.Token);

            return(connected & !failedToConnect);
        }