Dire que j'ai cette méthode simple:
public IEnumerable<uint> GetNumbers()
{
uint n = 0;
while(n < 100)
yield return n++;
}
Comment voulez-vous faire de ce "thread-safe"? Je veux dire par là que vous obtenez qui énumérateur une fois, et avoir plusieurs threads gérer tous les numéros sans que personne ne se duplique.
Je suppose qu'un verrou doit être utilisé de quelque part, mais où doit-lock pour un itérateur bloc pour être thread-safe? Ce qui, en général, avez-vous besoin de vous rappeler si vous voulez un "thread-safe" IEnumerable<T>
? Ou plutôt, je suppose que ce serait un "thread-safe" IEnumerator<T>
...?