Вы можете решить эту проблему с помощью этой простой конструкции:
class Program
{
static void Main(string[] args)
{
Task.Run(async () =>
{
// Do any async anything you need here without worry
}).GetAwaiter().GetResult();
}
}
Это поместит все, что вы делаете, на ThreadPool, где вы захотите (так что другие Задачи, которые вы запускаете / ожидаете, не пытаются для воссоединения нити они не должны), и дождитесь, пока все будет сделано до закрытия приложения консоли. Нет необходимости в специальных циклах или вне libs.
Изменить: включить решение Андрея для неперехваченных исключений.
Я нашел проблему. Это было связано с конфигурацией EmbeddedKafka
.
Перед началом тестирования с настройкой по умолчанию появился оператор beforeAll
, начиная с EmbeddedKafka. EmbeddedKafka.start
требует обновленных настроек брокера, передавая их для публикации после запуска EmbeddedKafka
.