【发布时间】:2016-09-08 21:18:05
【问题描述】:
我有一个列表,这个 SomeAttachmentClass 有一个 UploadCompleted 事件,即在调用 .Save() 方法时,只引发一次。 .Save() 方法在保存和上传实际完成之前不会阻塞,而是立即返回并通过所述事件发出完成信号。
现在我想要并且需要做的基本上是等待 List 中的所有实例(确切地)引发该事件一次,然后才继续。问题是 - 我将如何最简单地做到这一点/优雅吗?
我正在考虑在每个实例上将 RX 的 FromEvent(..) 与 .Take(1) 结合使用,在所有这些每个实例流上执行 .SelectMany() 并等待......但我不确定是否有更好的出路。
【问题讨论】:
-
您可以复制列表,并在每个触发的事件上从复制列表中删除引发事件的元素。当列表为空时 - 你会知道所有项目都引发了事件
标签: c# events task-parallel-library system.reactive