public void Can_Cache_Html() { // 첫번째 다운로드는 모두 기다려서 캐시에 저장되게 합니다. // using (new OperationTimer("First Load", false)) { var tasks = _urlStrings.Select(addr => _htmlCache.GetValue(new Uri(addr))).ToArray(); Task.WaitAll(tasks); tasks.RunEach(task => Assert.IsNotEmpty(task.Result)); } // 캐시에 저장되어 있으므로 무지 빠를 것입니다. // using (new OperationTimer("Second Load", false)) { var tasks = _urlStrings.Select(addr => _htmlCache.GetValue(new Uri(addr))).ToArray(); Task.WaitAll(tasks); tasks.RunEach(task => Assert.IsNotEmpty(task.Result)); } }
public void Test_CoordinationDataStructures_AsyncCoordination_AsyncCache_Cache() { //异步cached var asyncCache = new AsyncCache <int, int>(e => Task.Factory.StartNew <int>(() => 10)); var task = asyncCache.GetValue(1); Assert.AreEqual(true, task.IsCompleted); Assert.AreEqual(1, task.Result); var httpCache = new HtmlAsyncCache(); var pageTask = httpCache.GetValue(new Uri("http://www.baidu.com")); Assert.AreEqual(true, pageTask.IsCompleted); }