【发布时间】:2014-05-05 21:54:24
【问题描述】:
我有一种情况,我想从多个来源异步传输相同类型的数据。数据结果应该在输入时输出。最简单的方法是什么? yield return 被阻塞了,所以这不是我想要的。在下面的示例中,我希望源 B 的数据在源 A 的数据之前输出。
List<string> GetComputerRecordsFromA(int computerId)
{
Thread.sleep(100);
return new List<Record> {"Record1","Record2","Record3"};
}
List<int> GetComputerRecordsFromB()
{
return new List<int> {"Record1","Record2","Record3"};
}
IEnumerable<List<int>> GetDataBlocks()
{
//How to yield out in the order data comes available??
var computerIds = new List<int> {1,3,99,4};
foreach(int id in computerIds)
{
yield return GetDataFromA();
yield return GetDataFromB();
}
}
【问题讨论】:
-
第一个函数应该返回
List<int>?
标签: .net asynchronous yield-return