CacheState という名前のシングルトン クラスがあります。このクラスは多くのイベントを公開しています。CacheState には、これらすべてのイベントをループしてトリガーする System.Timers.Timer があります。
次に、asp.net アプリケーションで、Application_Start 中にこれらのイベントをサブスクライブします。この間に CacheState のタイマーも開始されます。
protected void Application_Start(object sender, EventArgs e)
{
CacheState.Instance.ProductChangedEvent += (objSender, argsE) => ProductService.ReloadProductCache(false);
CacheState.Instance.PageflexChangedEvent += (objSender, argsE) => ProductService.ResetPageflexCache(false);
CacheState.Instance.DeliveryChangedEvent += (objSender, argsE) => PricingRuleService.ResetDeliveryMethodsCache(false);
CacheState.Instance.UIItemChangedEvent += (objSender, argsE) => TemplateService.ResetUIItemsCache(false);
CacheState.Instance.ProductAttributeChangedEvent += Instance_ProductAttributeChangedEvent;
CacheState.Instance.Start();
}
C# イベントがメモリ リークを引き起こす可能性があることを読みました。それで、私がこれを間違っているかどうか誰かに教えてもらえますか?
ありがとう。