111,093
社区成员




//模型
public class User
{
public int id { get; set; }
public virtual string name { get; set; }
public virtual string buyer { get; set; }
public virtual string idArr { get; set; }
public virtual DateTime expiredTime { get; set; }
}
static void Main(string[] args)
{
//为了快一点我就设置了3秒过期
User u = new User() { id = 1, name = "n1", expiredTime = DateTime.Now.AddSeconds(3) };
//方法1
//直接时间判断
while (true)
{
Thread.Sleep(1000);
Console.WriteLine("是否过期:" + (u.expiredTime > DateTime.Now));
}
//方法2
//缓存 using System.Runtime.Caching;
MemoryCache mc = new MemoryCache("test");
mc.Set(u.id.ToString(), u, u.expiredTime);
while (true)
{
Thread.Sleep(1000);
Console.WriteLine("是否过期:" + mc.Get(u.id.ToString()));
}
Console.ReadLine();
}
[/quote]
给一个简单的实例代码。
//模型
public class User
{
public int id { get; set; }
public virtual string name { get; set; }
public virtual string buyer { get; set; }
public virtual string idArr { get; set; }
public virtual DateTime expiredTime { get; set; }
}
static void Main(string[] args)
{
//为了快一点我就设置了3秒过期
User u = new User() { id = 1, name = "n1", expiredTime = DateTime.Now.AddSeconds(3) };
//方法1
//直接时间判断
while (true)
{
Thread.Sleep(1000);
Console.WriteLine("是否过期:" + (u.expiredTime > DateTime.Now));
}
//方法2
//缓存 using System.Runtime.Caching;
MemoryCache mc = new MemoryCache("test");
mc.Set(u.id.ToString(), u, u.expiredTime);
while (true)
{
Thread.Sleep(1000);
Console.WriteLine("是否过期:" + mc.Get(u.id.ToString()));
}
Console.ReadLine();
}
[/quote]
我是不是想复杂了
while(expiredTime > DateTime.Now)
{
//处理事件
}
这样是不是就完了[/quote]
这个代码需要新建线程进行while循环,否者会造成UI卡死现象,因为循环不出去,UI不会刷新。