Dire che ho questo semplice metodo:C#: Come posso rendere sicuro un thread IEnumerable <T>?
public IEnumerable<uint> GetNumbers()
{
uint n = 0;
while(n < 100)
yield return n++;
}
Come ti rendere questo thread-safe? E con questo intendo che avresti ottenuto quell'enumeratore una sola volta, e che più thread gestiscono tutti i numeri senza che nessuno ottenga duplicati.
Suppongo che un blocco debba essere utilizzato da qualche parte, ma dove deve essere quel blocco per un blocco iteratore per essere thread-safe? Che cosa, in generale, hai bisogno di ricordare se vuoi un thread safe IEnumerable<T>
? O piuttosto credo che sarebbe un thread sicuro IEnumerator<T>
...?
(Nel caso in cui non stai controllando i miei commenti) Ho appena parlato di questo: http://msmvps.com/blogs/jon_skeet/archive/2009/10/23/iterating-atomically.aspx –
Oh , Grazie! Questo sito dovrebbe avere una sorta di notifica Facebook quando qualcuno commenta dopo il tuo commento o qualcosa del genere ... hehe. – Svish