本文整理汇总了C#中Cache.SetItem方法的典型用法代码示例。如果您正苦于以下问题:C# Cache.SetItem方法的具体用法?C# Cache.SetItem怎么用?C# Cache.SetItem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Cache
的用法示例。
在下文中一共展示了Cache.SetItem方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
private static void Main(string[] args)
{
long isComplete = 0;
var random = new Random();
var wait = new ManualResetEvent(false);
var readCounter = 0;
var createCounter = 0;
var deleteCounter = 0;
var cache = new Cache<Guid>();
// Reader
var reader = Task.Factory.StartNew(() =>
{
while (Interlocked.Read(ref isComplete) == 0)
{
readCounter++;
foreach (var p in cache)
System.Console.Write(".");
Thread.Sleep(random.Next(5));
}
});
// Creator
var creator = Task.Factory.StartNew(() =>
{
while (Interlocked.Read(ref isComplete) == 0)
{
createCounter++;
var newGuid = Guid.NewGuid();
cache.SetItem(newGuid.ToString("N"), newGuid);
System.Console.Write("+");
Thread.Sleep(random.Next(5));
}
});
// Deleter
var deleter = Task.Factory.StartNew(() =>
{
while (Interlocked.Read(ref isComplete) == 0)
{
if (cache.Count > 0)
{
deleteCounter++;
var key = cache.AllKeys.First();
cache.ExpireItem(key);
System.Console.Write("-");
}
Thread.Sleep(random.Next(5));
}
});
// Monitor
Task.Factory.StartNew(() =>
{
Thread.Sleep(5000);
Interlocked.Exchange(ref isComplete, 1);
wait.Set();
});
wait.WaitOne();
// Errors
if (reader.Exception != null)
Debug.Fail("\r\nThe basket is no longer thread safe -> {0}".FormatWith(reader.Exception));
if (creator.Exception != null)
Debug.Fail("\r\nThe basket is no longer thread safe -> {0}".FormatWith(creator.Exception));
if (deleter.Exception != null)
Debug.Fail("\r\nThe basket is no longer thread safe -> {0}".FormatWith(deleter.Exception));
Thread.Sleep(500);
System.Console.WriteLine("Reads: {0}, Creates: {1}, Deletes: {2} in 5 second(s).".FormatWith(readCounter, createCounter, deleteCounter));
System.Console.ReadLine();
}