示例#1
0
        private async Task sendAndWaitAsync(AbstractMessage msg)
        {
            sendId = msg.ID;

            if (ON_MESSAGE != null)
            {
                MESSAGE_SENDER.NewValidMessage -= MESSAGE_SENDER_NewValidMessage;
                MESSAGE_SENDER.NewValidMessage += MESSAGE_SENDER_NewValidMessage;
            }

            TIMER_SEMA.Wait();
            bool success = await MESSAGE_SENDER.SendAsync(msg).ConfigureAwait(false);

            if (ON_TIMEOUT != null)
            {
                if (!success)
                {
                    ON_TIMEOUT(this);
                }

                startTimer();
            }
            if (disposed)
            {
                return;
            }
            TIMER_SEMA.Release();
        }
        private async Task sendAndWaitAsync(AbstractMessage msg)
        {
            sendId = msg.ID;

            if (ON_MESSAGE != null)
            {
                MESSAGE_SENDER.NewValidMessage -= Client_NewValidMessage;
                MESSAGE_SENDER.NewValidMessage += Client_NewValidMessage;
            }

            await MESSAGE_SENDER.sendAsync(msg);

            if (ON_TIMEOUT != null)
            {
                startTimer();
            }
        }
示例#3
0
 //--------------------------------------------------------Misc Methods:---------------------------------------------------------------\\
 #region --Misc Methods (Public)--
 public Task start(AbstractMessage msg)
 {
     return(sendAndWaitAsync(msg));
 }
        //--------------------------------------------------------Set-, Get- Methods:---------------------------------------------------------\\
        #region --Set-, Get- Methods--


        #endregion
        //--------------------------------------------------------Misc Methods:---------------------------------------------------------------\\
        #region --Misc Methods (Public)--
        public void start(AbstractMessage msg)
        {
            Task t = sendAndWaitAsync(msg);
        }