Exemplo n.º 1
0
        public void StartHandshakeAsync()
        {
            m_AsyncHandshakeResult         = eAsyncHandshakeResult.Waiting;
            m_AsyncHandshakeStartTimeAsync = DateTime.Now;

            SendHandshakeRequest();

            if (m_FaultyFlag)
            {
                m_AsyncHandshakeResult = eAsyncHandshakeResult.Failed;
                return;
            }
            else
            {
                Thread th = (new Thread(new ThreadStart(AsyncHandshakeWorkerThread)));
                th.Name = "Async Handshake";
                th.Start();
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// a thread to do the handshake
        /// </summary>
        private void AsyncHandshakeWorkerThread()
        {
            TimeSpan dtWait = TimeSpan.FromSeconds(10);

            while (!m_FaultyFlag)
            {
                if (m_dtLastHandshake != null)
                {
                    m_AsyncHandshakeResult = eAsyncHandshakeResult.Success;
                    return;
                }

                if (DateTime.Now - m_AsyncHandshakeStartTimeAsync > dtWait)
                {
                    m_AsyncHandshakeResult = eAsyncHandshakeResult.NoResponse;
                    return;
                }
            }
            m_AsyncHandshakeResult = eAsyncHandshakeResult.Failed;
        }