Создание GetEnumerator ThreadSafe

Как именно работают счетчики - я знаю, что они создают конечный автомат за кулисами, но если я дважды вызову GetEnumerator, получу ли я два разных объекта?

Если я что-то сделаю вроде этого

  public IEnumerator<T> GetEnumerator()
  {
     yield return 1;
     yield return 2;
  }

Могу ли я получить блокировку в начале метода и удерживается ли эта блокировка до тех пор, пока перечислитель не вернет значение null или пока перечислитель не будет GC'd?

Что произойдет, если вызывающий объект сбрасывает перечислитель и т. д. -

Думаю, мой вопрос заключается в том, как лучше всего управлять блокировкой при работе с перечислителем

Примечание:webmaster@dev.dom.comDocumentRoot "C: / Program Files / Apache Software Foundation / Apache2.2 / htdocs" Имя сервера dev.dom.com ServerAlias ​​dev.dom.com ...

<VirtualHost *:80>
    ServerAdmin webmaster@dev.dom.com
    DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
    ServerName dev.dom.com
    ServerAlias dev.dom.com
    ErrorLog "logs/dev.dom.com-error.log"
    CustomLog "logs/dev.dom.com-access.log" common
    PassEnv CLUSTER
    Header always set X-Cluster "%{CLUSTER}e"
</VirtualHost>

Вот моя конфигурация. У меня есть переменная среды, которая сообщает мне, в каком кластере я нахожусь, и которая передается как заголовок в «X-Cluster». Это нормально возвращает ответ 200 или 404, но ответ 304 Not Modified никогда не возвращает заголовок, даже если он возвращает другие подходящие заголовки Apache.

Как мне установить заголовок во время ответа 304?

5
задан Dominic 8 May 2011 в 08:42
поделиться