簡體   English   中英

使用Global.asax.cs中的RegisterCacheEntry或Timer start()和stop()創建周期性事件會更好嗎?

[英]is it better to create periodic events using RegisterCacheEntry in Global.asax.cs or Timer start() and stop()?

誰能在Global.asax.cs中的RegisterCacheEntry和Timer之間提供更好的選擇?

RegisterCacheEntry()示例

    private void RegisterCacheEntry()
    {
        // Prevent duplicate key addition
        if (null != HttpContext.Current.Cache[Dummy_CacheItem]) return;

        HttpContext.Current.Cache.Add(Dummy_CacheItem, "Test", null, DateTime.MaxValue,
            TimeSpan.FromMinutes(1), CacheItemPriority.NotRemovable,
            new CacheItemRemovedCallback(CacheItemRemovedCallback));
    }

    public void CacheItemRemovedCallback(
        string key,
        object value,
        CacheItemRemovedReason reason
        )
    {
           // call the function to be run periodically
    }

計時器示例http://www.aspfree.com/c/a/C-Sharp/Timer-Objects-in-Windows-Services-with-C-NET/

請告訴我。 謝謝!

他們都不去做一個Windows服務並使用一個計時器。

使用對象緩存作為計時器是嚴重的誤用,這會使您的代碼可讀性差很多。 還請記住,計時器僅在應用程序池處於活動狀態時才運行,並且您無法控制何時回收池。

要以特定間隔運行任務,應使用Windows Task Scheduler。 編寫控制台應用程序並創建計划的任務。

該解決方案比編寫Windows服務簡單,並且提供了有關任務何時運行的更多選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM