public async ValueTask DeleteNoWaitAsync(string name, bool ifUnused = false) { var info = new ExchangeDeleteInfo(name, ifUnused); await SendExchangeDeleteAsync(info).ConfigureAwait(false); _exchanges.Remove(info.Name); }
public async ValueTask <bool> DeleteAsync(string name, bool ifUnused = false) { await _semafore.WaitAsync().ConfigureAwait(false); _deleteOkSrc = new TaskCompletionSource <bool>(); var info = new ExchangeDeleteInfo(name, ifUnused); await SendExchangeDeleteAsync(info).ConfigureAwait(false); var result = await _deleteOkSrc.Task.ConfigureAwait(false); if (result) { _exchanges.Remove(info.Name); } else { //TODO: сделать что нибудь } _semafore.Release(); return(result); }