C #: Jak mogę uczynić wątek IEnumerable <T> bezpiecznym?

Powiedz, że mam tę prostą metodę:

public IEnumerable<uint> GetNumbers()
{
    uint n = 0;
    while(n < 100)
        yield return n++;
}

Jak uczyniłbyś ten wątek bezpiecznym? Mam przez to na myśli, że raz otrzymasz ten moduł wyliczający, a wiele wątków obsługuje wszystkie liczby, bez uzyskiwania duplikatów.

Przypuszczam, że gdzieś trzeba użyć blokady, ale gdzie musi być ta blokada, aby blok iteratora był bezpieczny dla wątków? Co, ogólnie rzecz biorąc, musisz zapamiętać, jeśli chcesz mieć bezpieczny wątekIEnumerable<T>? Albo raczej myślę, że byłby to bezpieczny wątekIEnumerator<T>...?

questionAnswers(6)

yourAnswerToTheQuestion