Делаю так:
Event evnt = null;
try
{
if (!queueEvents.TryTake(out evnt, 0, token))
{
// Очередь пуста, ожидаем.
await Task.Delay(timeout);
}
else
{
// Обработка события
ProcessEvent(evnt);
}
}
catch (OperationCanceledException)
{
Console.WriteLine("Taking canceled.");
break;
}
Иногда попадаю в ветку else, но при этом evnt остается null, что не так?
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости