Dire que j'ai cette méthode simple:C#: Comment rendre un thread IEnumerable <T> sécurisé?
public IEnumerable<uint> GetNumbers()
{
uint n = 0;
while(n < 100)
yield return n++;
}
Comment voulez-vous faire de ce fil en toute sécurité? Et par là je veux dire que vous auriez une fois cette énumération, et que plusieurs threads géreraient tous les nombres sans que personne ne reçoive de doublons.
Je suppose qu'un verrou doit être utilisé quelque part, mais où doit être ce verrou pour qu'un bloc d'itérateur soit thread-safe? De quoi, en général, devez-vous vous rappeler si vous voulez un fil de sécurité IEnumerable<T>
? Ou plutôt je suppose que ce serait un fil de sécurité IEnumerator<T>
...?
(Juste au cas où vous ne vérifiez pas mes commentaires) Je viens de bloguer à ce sujet: http://msmvps.com/blogs/jon_skeet/archive/2009/10/23/iterating-atomically.aspx –
Oh , Merci! Ce site devrait avoir une sorte de notification Facebook lorsque quelqu'un commente après votre commentaire ou quelque chose comme ça ... hehe. – Svish