/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/MassTransit.Abstractions/BusDepotExtensions.cs
38 строк
1 KB
Chris Patterson
Integration of all external packages into MassTransit, split out into Abstractions, Middleware, and the core MassTransit assembly.
22 янв 2022, 18:24
22 янв 2022, 18:24
b5b4f50
Код
Авторство
О чём код?
namespace MassTransit { using System; using System.Threading; using System.Threading.Tasks; public static class BusDepotExtensions { public static async Task Start(this IBusDepot depot, TimeSpan timeout, CancellationToken cancellationToken = default) { using var timeoutTokenSource = new CancellationTokenSource(timeout); if (cancellationToken.CanBeCanceled) { using var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, timeoutTokenSource.Token); await depot.Start(linkedTokenSource.Token).ConfigureAwait(false); } else await depot.Start(timeoutTokenSource.Token).ConfigureAwait(false); } public static async Task Stop(this IBusDepot depot, TimeSpan timeout, CancellationToken cancellationToken = default) { using var timeoutTokenSource = new CancellationTokenSource(timeout); if (cancellationToken.CanBeCanceled) { using var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, timeoutTokenSource.Token); await depot.Stop(linkedTokenSource.Token).ConfigureAwait(false); } else await depot.Stop(timeoutTokenSource.Token).ConfigureAwait(false); } } }