Кэширование шаблонов в ASP.NET

Используйте фильтры zmq и azmq . В отличие от фильтра sendcmd, который использует предварительно записанные команды, (a) zmq позволяет произвольно отправлять команды фильтра.

Чтобы включить эти фильтры, необходимо установить библиотеку libzmq и заголовки и настроить ffmpeg с помощью --enable-libzmq.

Только фильтры, которые поддерживают команды, могут использоваться с этим фильтром. Обратитесь к выводу ffmpeg -filters, чтобы просмотреть список фильтров, которые поддерживают команды. Кроме того, не все параметры фильтра считаются командами. Обратитесь к документации каждого фильтра для получения списка поддерживаемых команд.


Примеры из документации

Рассмотрим следующий фильтр-график, сгенерированный ffplay. В этом примере последний фильтр наложения имеет имя экземпляра. Все остальные фильтры будут иметь имена экземпляров по умолчанию.

ffplay -dumpgraph 1 -f lavfi "
color=s=100x100:c=red  [l];
color=s=100x100:c=blue [r];
nullsrc=s=200x100, zmq [bg];
[bg][l]   overlay     [bg+l];
[bg+l][r] overlay@my=x=100 "

Чтобы изменить цвет левой стороны видео, можно использовать следующую команду:

echo Parsed_color_0 c yellow | tools/zmqsend

Чтобы изменить правую сторону:

echo Parsed_color_1 c pink | tools/zmqsend

На изменить положение правой стороны:

echo overlay@my x 150 | tools/zmqsend

14
задан Chris 28 August 2008 в 21:43
поделиться

2 ответа

Грязное отслеживание является нормальным способом обработать это, я думаю. Что-то как:

class MyObject {
  public string SomeValue { 
     get { return _someValue; }
     set { 
       if (value != SomeValue) {
          IsDirty = true;
          _someValue = value;
       }
  }

  public bool IsDirty {
     get;
     private set;
  }

  void SaveToDatabase() {
     base.SaveToDatabase(); 
     IsDirty = false;
  }
}

myoldObject = new MyObject { someValue = "old value" };
cache.Insert("myObjectKey", myoldObject);
myNewObject = cache.Get("myObjectKey");
myNewObject.someValue = "new value";
if(myNewObject.IsDirty)
   myNewObject.SaveToDatabase();
23
ответ дан 1 December 2019 в 12:02
поделиться

Я сделал подобные вещи, но я обошел его путем клонирования также. Различие - то, что у меня был кэш, делают клонирование. При помещении объекта в кэш кэш клонирует объект сначала и сохранит клонированную версию (таким образом, можно видоизменить исходный объект, не отравляя кэш). Когда Вы получаете объект от кэша, кэш возвращает клон объекта вместо хранившего объекта (снова так, чтобы вызывающая сторона могла видоизменить объект, не производя кэшируемый/канонический объект).

я думаю, что это совершенно приемлемо пока данные, которые Вы храните/обманываете, является маленьким.

1
ответ дан 1 December 2019 в 12:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: