C #: Как я могу сделать поток IEnumerable <T> безопасным?

Скажем, у меня есть этот простой метод:

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

Как бы вы сделали эту тему безопасной? Под этим я подразумеваю, что вы получите этот перечислитель один раз, и несколько потоков будут обрабатывать все числа без дубликатов.

Я полагаю, что где-то нужно использовать блокировку, но где эта блокировка должна быть, чтобы блок итератора был потокобезопасным? Что, в общем, нужно помнить, если вы хотите потокобезопасныйIEnumerable<T>? Или, скорее, я думаю, это было бы безопасным потокомIEnumerator<T>? ...

Ответы на вопрос(6)

Ваш ответ на вопрос