C#判断某个操作是否超时
1、新建控制台程序TimeoutTest
2、选中当前解决方案TimeoutTest,并右键选中添加新的类。这里取类名Timeout
3、为Timeout类添加属性 // 设定超时间隔为1000ms private readonly int TimeoutInterval = 1000; // lastTicks 用于存储新建操作开始时的时间 public long lastTicks; // 用于存储操作消耗的时间 public long elapsedTicks;
4、为Timeout类添加构造函数,用于记录实例化Timeout类的时间 public Timeout() { lastTicks = DateTime.Now.Ticks; }
5、为Timeout类添加方法,用于判断是否超时。原理是计算操作花费的时间,并与自定义的超时间隔比较,若大于间隔,则超时。 public bool IsTimeout() { elapsedTicks = DateTime.Now.Ticks - lastTicks; TimeSpan span = new TimeSpan(elapsedTicks); double diff = span.TotalSeconds; if (diff > TimeoutInterval) return true; else return false; }
6、Timeout类的使用方法:假设有耗时操作:TimeConsumingProcess(),在调用该操作之前先实例化Timeout类,操作结束后调用IsTimeout方法即可判断是否超时。