using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BPASmartClient.Helper { /// /// 上升沿操作类 /// public class RTrig { private volatile static ConcurrentDictionary _Instance; private static readonly object Lock = new object(); public static RTrig GetInstance(string name) { lock (Lock) { if (_Instance == null) _Instance = new ConcurrentDictionary(); if (!_Instance.ContainsKey(name)) _Instance.TryAdd(name, new RTrig()); return _Instance[name]; } } private RTrig() { } private bool flag1; public bool Q { get; private set; } private bool IN1 { set { Q = value && !flag1; flag1 = value; } } public bool Start(bool IN) { IN1 = IN; return Q; } } }