Я пытаюсь использовать общественный транспорт для обработки ответов на запросы. Большинство примеров общественного транспорта относятся к консольному приложению или веб-приложению, и я не знаю, как запустить или остановить автобус производителя, когда я использую его в библиотеке классов.
Потому что в примерах для веб-приложений шина запускается при запуске приложения, а для библиотеки классов нет такой вещи, как startup.cs.
У меня вопрос: где начать автобус или остановиться, когда я использую библиотеку классов для подключения к автобусу?
Код моего производителя выглядит так
IBusControl busControl = CreateBus();
TaskUtil.Await(() => busControl.StartAsync());
IRequestClient<IAccountingRequest, IAccountingResponse> client = CreateRequestClient(busControl);
IAccountingResponse response = null;
AccountingRequest accountingRequest = MapToAccountingRequest(accountingIntegration);
Task.Run(async () =>
{
response = await client.Request(accountingRequest);
}).Wait();
busControl.Stop();
Но я думаю, что запускать и останавливать автобус для каждого запроса - это нехорошо.
Task.Run
относится к процессору, а MT - к вводу-выводу. - person Alexey Zimarev   schedule 22.05.2018