Example #1
0
 /// <summary>
 /// 数据取缓存,如果有缓冲中有数据且时间小于IntervalSeconds则取缓冲,否则通过generateDataMethod的返回值取得数据并存起来。
 /// </summary>
 /// <param name="key"></param>
 /// <param name="generateDataMethod"></param>
 /// <returns></returns>
 public T ReadCache(string key, GenerateDataDelegate generateDataMethod)
 {
     lock (dics)
     {
         if (dics.ContainsKey(key) && (DateTime.Now - dics[key].UpdateTime).TotalSeconds < IntervalSeconds)
         {
             return(dics[key].Data);
         }
         else
         {
             var data = generateDataMethod();
             UpdateCache(key, data);
             return(data);
         }
     }
 }
Example #2
0
        bool Assert(string assertId, string extension, GenerateDataDelegate generator,
            CompareDataDelegate comparer)
        {
            var actualPath = Path.Combine(BaseDirectory, assertId + "_actual." + extension);
            var expectedPath = Path.Combine(BaseDirectory, assertId + "_expected." + extension);
            var diffPath = Path.Combine(BaseDirectory, assertId + "_diff." + extension);

            if (!File.Exists(expectedPath))
            {
                generator(expectedPath);
                return false;
            }

            generator(actualPath);

            if (comparer(expectedPath, actualPath, diffPath))
            {
                File.Delete(actualPath);
                File.Delete(diffPath);
                return false;
            }

            return true;
        }