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(); } }
//--------------------------------------------------------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); }