Microsoft.Azure.Amqp.Transport.AmqpTransportInitiator.ConnectAsync C# (CSharp) Method

ConnectAsync() public method

public ConnectAsync ( System.TimeSpan timeout, TransportAsyncCallbackArgs callbackArgs ) : bool
timeout System.TimeSpan
callbackArgs TransportAsyncCallbackArgs
return bool
        public override bool ConnectAsync(TimeSpan timeout, TransportAsyncCallbackArgs callbackArgs)
        {
            AmqpTrace.Provider.AmqpLogOperationInformational(this, TraceOperation.Connect, this.transportSettings);
            TransportInitiator innerInitiator = this.transportSettings.CreateInitiator();
            TransportAsyncCallbackArgs args = new TransportAsyncCallbackArgs();
            args.CompletedCallback = this.OnConnectComplete;
            args.UserToken = callbackArgs;
            callbackArgs.CompletedSynchronously = false;
            this.timeoutHelper = new TimeoutHelper(timeout);
            if (innerInitiator.ConnectAsync(timeout, args))
            {
                return true;
            }

            int currentThread = CurrentThreadId;
            Interlocked.Exchange(ref this.completingThread, currentThread);
            this.OnConnectComplete(args);
            return Interlocked.Exchange(ref this.completingThread, -1) != 0;
        }

Usage Example

Beispiel #1
0
            public ConnectAsyncResult(AmqpTransportInitiator initiator, TimeSpan timeout, AsyncCallback callback, object state)
                : base(callback, state)
            {
                TransportAsyncCallbackArgs args = new TransportAsyncCallbackArgs();

                args.CompletedCallback = onConnect;
                args.UserToken         = this;
                if (!initiator.ConnectAsync(timeout, args))
                {
                    OnConnect(args);
                }
            }
All Usage Examples Of Microsoft.Azure.Amqp.Transport.AmqpTransportInitiator::ConnectAsync