本文整理汇总了C#中IAdvancedBus.ExchangeDeclareAsync方法的典型用法代码示例。如果您正苦于以下问题:C# IAdvancedBus.ExchangeDeclareAsync方法的具体用法?C# IAdvancedBus.ExchangeDeclareAsync怎么用?C# IAdvancedBus.ExchangeDeclareAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IAdvancedBus
的用法示例。
在下文中一共展示了IAdvancedBus.ExchangeDeclareAsync方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DeclareExchangeAsync
public Task<IExchange> DeclareExchangeAsync(IAdvancedBus advancedBus, string exchangeName, string exchangeType)
{
return exchangeNames.AddOrUpdate(
exchangeName,
name => advancedBus.ExchangeDeclareAsync(name, exchangeType),
(name, exchangeTask) => exchangeTask.IsFaulted ? advancedBus.ExchangeDeclareAsync(name, exchangeType) : exchangeTask);
}
示例2: DeclareExchangeAsync
public async Task<IExchange> DeclareExchangeAsync(IAdvancedBus advancedBus, string exchangeName, string exchangeType)
{
IExchange exchange;
if (exchanges.TryGetValue(exchangeName, out exchange))
{
return exchange;
}
await semaphore.WaitAsync().ConfigureAwait(false);
try
{
if (exchanges.TryGetValue(exchangeName, out exchange))
{
return exchange;
}
exchange = await advancedBus.ExchangeDeclareAsync(exchangeName, exchangeType).ConfigureAwait(false);
exchanges[exchangeName] = exchange;
return exchange;
}
finally
{
semaphore.Release();
}
}