我從庫函數接收阻塞IEnumerable(如永不結束的流)。有時它包含幾條消息,有時候會包含很多消息。我需要從中獲取所有現有的消息,並且我不想等待新消息。從阻塞IEnumerable中讀取
該代碼提取現有消息並等待10秒超時。
var cancellationTokenSource = new CancellationTokenSource(10000);
foreach (var data in consumer.Consume(cancellationTokenSource.Token))
{
Console.WriteLine(data.message);
}
我該如何修改我的代碼?
public IEnumerable<Message> Consume(CancellationToken? cancellationToken = null)
https://msdn.microsoft.com/en-us/library/dd267317(v = vs.110).aspx BlockingCollection .ToArray可能工作但不確定,所以只有一條評論 –
Paparazzi
'consumer'變量的類型是什麼? –
唉,ToArray()等待這個永無止境的結局。 –