[英]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.