private double Harness(ICacheManager cm, int TaskCount, int MaxItems, int GetCount) { var srg = new SimpleRandomGenerator(); for (var i = 0; i < MaxItems; i++) { var f = new Foo(); f.Name = srg.Generate(new RandomGeneratorSetting(RandomCodeType.Alpha, 300)); f.Size = SafeClrConvert.ToInt32(new RandomGeneratorSetting(RandomCodeType.Num, 3)); f.Price = SafeClrConvert.ToInt32(new RandomGeneratorSetting(RandomCodeType.Num, 5)); f.Exists = SafeClrConvert.ToInt32(new RandomGeneratorSetting(RandomCodeType.Num, 2)) % 2 == 0; cm.Add("item" + i, f); } var tasks = new Task[TaskCount]; var rnd = new Random(); for (var i = 0; i < TaskCount; i++) { tasks[i] = new Task((c) => { var _c = c as ICacheManager; if (_c != null) { for (var j = 0; j < GetCount; j++) { var x = _c.Get("item" + rnd.Next(0, MaxItems)); consume(x); Thread.Yield(); } } }, cm); } var sw = new Stopwatch(); sw.Start(); for (var i = 0; i < TaskCount; i++) { tasks[i].Start(); } Task.WaitAll(tasks); sw.Stop(); return(sw.ElapsedMilliseconds); }
public override void Test() { var srg = new SimpleRandomGenerator(); var rgs = new RandomGeneratorSetting(RandomCodeType.AlphaNum, 8); var data = new List <string>(); for (var i = 0; i < 20; i++) { var x = srg.Generate(rgs); data.Add(x); } foreach (var code in data) { System.Console.WriteLine(code); } }