using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Web;
using System.Web.Caching;
namespace
{
public class StructureNode
{
private const string STRUCTURE_CACHE_KEY = "STRUCTURE_CACHE";
public static bool StructureCached
{
get
{
var cache = HttpRuntime.Cache.Get(STRUCTURE_CACHE_KEY);
return !(cache == null || cache is string);
}
}
public static void CreateStructureCache()
{
if (HttpRuntime.Cache.Get(STRUCTURE_CACHE_KEY) != null)
return;
Task.Run(() =>
{
var sw = new Stopwatch();
HttpRuntime.Cache.Insert(STRUCTURE_CACHE_KEY, "?", null, Cache.NoAbsoluteExpiration, new TimeSpan(24, 0, 0), CacheItemPriority.Normal, null);
sw.Start();
var items = GetItems();
sw.Stop();
HttpRuntime.Cache.Insert(STRUCTURE_CACHE_KEY, items, null, Cache.NoAbsoluteExpiration, new TimeSpan(24, 0, 0), CacheItemPriority.Normal, null);