0
假设我有3个线程T1,T2,T3等待数据D1,D2,D3。数据由另一个线程提供。我怎样才能暂停这些线程,并且(A)让手头的数据继续执行,或者作为另一种方法,我如何让(B)让所有三个线程执行一个循环来检查它们是否有可用的数据,然后再次停止。基于接收到的数据继续线程
为了使它更具体一点,假设D2将可用,然后在解决方案(A)中线程T2应该继续,并且在解决方案(B)中,所有三个都将继续并验证数据是否适用于它们,如果不适合他们,请再检查一次。
我知道我可以用的数据,并为每个线程的的AutoResetEvent的关键一本字典解决这个问题,但是这似乎并不很优雅......有没有更优雅的方式?
谢谢!
Edwin。
根据这些数据。可以使用[BlockingCollection](https://msdn.microsoft.com/en-us/library/dd267312(V = vs.110).ASPX?CS-保存琅= 1&CS琅= CSHARP#代码段-1)为“A”选项。 –
Fabio
谢谢。看起来很有希望。什么是.NET 3.5的解决方案? – Edwin
移至.NET 4.6 :) – Fabio