using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Concurrent;
namespace HBLConsole.Service
{
///
/// 延时操作
///
public class Delay
{
///
/// 计时条件
///
//public bool IN { get; set; }
private volatile static ConcurrentDictionary _Instance;
public static Delay GetInstance(string name)
{
if (_Instance == null) _Instance = new ConcurrentDictionary();
if (!_Instance.ContainsKey(name)) _Instance.TryAdd(name, new Delay());
return _Instance[name];
}
private Delay() { }
///
/// 移除指定的定时器
///
///
public static void RemoveDelay(string name)
{
if (_Instance.ContainsKey(name))
_Instance.TryRemove(name, out Delay delay);
}
///
/// 当前时间
///
public long ET { get; private set; } = 0;
public bool Q { get; private set; }
private bool flag;
DateTime startTime = new DateTime();
///
/// 开始计时(时间单位/秒)
///
/// 计时时间(单位 秒)
///
public bool Start(bool IN, int PT)
{
if (IN)
{
if (!flag)
{
startTime = DateTime.Now;
flag = true;
}
if (ET < PT) ET = Convert.ToInt64(DateTime.Now.Subtract(startTime).TotalSeconds);
}
else
{
ET = 0;
flag = false;
}
Q = ET >= PT;
return Q;
}
}
}