Я хотел бы await
по результату BlockingCollection<T>.Take()
асинхронно, поэтому я не блокирую поток. Ищете что-нибудь вроде этого:
var item = await blockingCollection.TakeAsync();
Я знаю, что смогу сделать это:
var item = await Task.Run(() => blockingCollection.Take());
но этот вид убивает всю идею, потому что вместо этого блокируется другой поток (ThreadPool
).
Есть ли альтернатива?