| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | using DW5S.DTO;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DW5S.Service{    /// <summary>    /// 任务目标信号缓存    /// </summary>    public class TaskTarCache    {        public static TaskTarCache Instance { get; private set; } = new TaskTarCache();        //取参考时间 单位:秒        public double TakeRefTimeSeconds;        public TaskTarCache()        {            //取参考时间 单位:分钟            var takeRefTime = AppConfigHelper.Get("TakeRefTime", 10);            TakeRefTimeSeconds = takeRefTime * 60;//秒        }        /// <summary>        /// 缓存目标信号信息        /// </summary>        private Dictionary<int, List<X2D1NoXlNoParlPosDto>> _cahceTars = new Dictionary<int, List<X2D1NoXlNoParlPosDto>>();        public void AddRange(int taskId, List<X2D1NoXlNoParlPosDto> tarItems)        {            lock (this)            {                if (!_cahceTars.ContainsKey(taskId))                    _cahceTars[taskId] = new List<X2D1NoXlNoParlPosDto>();                _cahceTars[taskId].AddRange(tarItems);            }        }        public void Remove(int taskId, X2D1NoXlNoParlPosDto tarItem)        {            lock (this)            {                if (_cahceTars.ContainsKey(taskId))                {                    _cahceTars[taskId].Remove(tarItem);                }            }        }        public void ClearCache(int taskID)        {            lock (this)            {                if (_cahceTars.ContainsKey(taskID))                {                    _cahceTars.Remove(taskID);                }            }        }        public List<X2D1NoXlNoParlPosDto> GetTaskTar(int taskID)        {            lock (this)            {                if (_cahceTars.ContainsKey(taskID))                {                    return _cahceTars[taskID];                }                else                {                    return new List<X2D1NoXlNoParlPosDto>();                }            }        }        public void ClearAll()        {            lock (this)            {                _cahceTars.Clear();            }        }    }}
 |