<tfoot id='CyFwA'></tfoot>
        <bdo id='CyFwA'></bdo><ul id='CyFwA'></ul>
    1. <i id='CyFwA'><tr id='CyFwA'><dt id='CyFwA'><q id='CyFwA'><span id='CyFwA'><b id='CyFwA'><form id='CyFwA'><ins id='CyFwA'></ins><ul id='CyFwA'></ul><sub id='CyFwA'></sub></form><legend id='CyFwA'></legend><bdo id='CyFwA'><pre id='CyFwA'><center id='CyFwA'></center></pre></bdo></b><th id='CyFwA'></th></span></q></dt></tr></i><div id='CyFwA'><tfoot id='CyFwA'></tfoot><dl id='CyFwA'><fieldset id='CyFwA'></fieldset></dl></div>

      <small id='CyFwA'></small><noframes id='CyFwA'>

    2. <legend id='CyFwA'><style id='CyFwA'><dir id='CyFwA'><q id='CyFwA'></q></dir></style></legend>

        如何从 ASP.NET 核心中的 IMemoryCache 中删除所有对象(重置)

        时间:2023-07-12

        • <bdo id='BDsw8'></bdo><ul id='BDsw8'></ul>

            • <i id='BDsw8'><tr id='BDsw8'><dt id='BDsw8'><q id='BDsw8'><span id='BDsw8'><b id='BDsw8'><form id='BDsw8'><ins id='BDsw8'></ins><ul id='BDsw8'></ul><sub id='BDsw8'></sub></form><legend id='BDsw8'></legend><bdo id='BDsw8'><pre id='BDsw8'><center id='BDsw8'></center></pre></bdo></b><th id='BDsw8'></th></span></q></dt></tr></i><div id='BDsw8'><tfoot id='BDsw8'></tfoot><dl id='BDsw8'><fieldset id='BDsw8'></fieldset></dl></div>

              <small id='BDsw8'></small><noframes id='BDsw8'>

              <tfoot id='BDsw8'></tfoot>

                  <tbody id='BDsw8'></tbody>
                • <legend id='BDsw8'><style id='BDsw8'><dir id='BDsw8'><q id='BDsw8'></q></dir></style></legend>
                  本文介绍了如何从 ASP.NET 核心中的 IMemoryCache 中删除所有对象(重置)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我可以找到一个 remove 方法,通过它的键从 IMemoryCache 中删除一个对象.有没有办法重置整个缓存并删除所有对象?

                  I can find a remove method to remove an object from IMemoryCache by its key. Is there a way to reset the whole cache and remove all objects?

                  如何清除 MemoryCache?链接中提供的 Dispose 方法在 asp.net 5 中给了我一个异常. ObjectDisposedException:无法访问已处理的对象.对象名称:Microsoft.Extensions.Caching.Memory.MemoryCache".

                  How to clear MemoryCache? Dispose method provided in the link gives me an exception in asp.net 5. ObjectDisposedException: Cannot access a disposed object. Object name: 'Microsoft.Extensions.Caching.Memory.MemoryCache'.

                  推荐答案

                  参见 在 ASP.NET Core 中缓存内存,特别是关于缓存依赖项.

                  使用 CancellationTokenSource 可以将多个缓存条目作为一个组逐出

                  Using a CancellationTokenSource allows multiple cache entries to be evicted as a group

                  这段代码对我有用:

                  public class CacheProvider 
                  {
                      private static CancellationTokenSource _resetCacheToken = new CancellationTokenSource();
                      private readonly IMemoryCache _innerCache;
                  
                      /* other methods and constructor removed for brevity */
                  
                      public T Set<T>(object key, T value) 
                      {
                          /* some other code removed for brevity */
                          var options = new MemoryCacheEntryOptions().SetPriority(CacheItemPriority.Normal).SetAbsoluteExpiration(typeExpiration);
                          options.AddExpirationToken(new CancellationChangeToken(_resetCacheToken.Token));
                  
                          _innerCache.Set(CreateKey(type, key), value, options);
                  
                          return value;
                      }
                  
                      public void Reset()
                      {
                          if (_resetCacheToken != null && !_resetCacheToken.IsCancellationRequested && _resetCacheToken.Token.CanBeCanceled)
                          {
                              _resetCacheToken.Cancel();
                              _resetCacheToken.Dispose();
                          }
                  
                          _resetCacheToken = new CancellationTokenSource();
                      }
                  }
                  

                  这篇关于如何从 ASP.NET 核心中的 IMemoryCache 中删除所有对象(重置)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:带有 Windows 身份验证的 ASP.NET Core 2.1 自定义 RoleProvider 下一篇:Ok() 方法 new ObjectResult() 有什么区别吗?

                  相关文章

                  1. <small id='hSkQC'></small><noframes id='hSkQC'>

                  2. <tfoot id='hSkQC'></tfoot>

                      <bdo id='hSkQC'></bdo><ul id='hSkQC'></ul>
                      <legend id='hSkQC'><style id='hSkQC'><dir id='hSkQC'><q id='hSkQC'></q></dir></style></legend>
                    1. <i id='hSkQC'><tr id='hSkQC'><dt id='hSkQC'><q id='hSkQC'><span id='hSkQC'><b id='hSkQC'><form id='hSkQC'><ins id='hSkQC'></ins><ul id='hSkQC'></ul><sub id='hSkQC'></sub></form><legend id='hSkQC'></legend><bdo id='hSkQC'><pre id='hSkQC'><center id='hSkQC'></center></pre></bdo></b><th id='hSkQC'></th></span></q></dt></tr></i><div id='hSkQC'><tfoot id='hSkQC'></tfoot><dl id='hSkQC'><fieldset id='hSkQC'></fieldset></dl></div>