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<X2D1NoRefPosDto>> _cahceTars = new Dictionary<int, List<X2D1NoRefPosDto>>();
- public void AddRange(int taskId, List<X2D1NoRefPosDto> tarItems)
- {
- lock (this)
- {
- if (!_cahceTars.ContainsKey(taskId))
- _cahceTars[taskId] = new List<X2D1NoRefPosDto>();
- _cahceTars[taskId].AddRange(tarItems);
- }
- }
- public void Remove(int taskId, X2D1NoRefPosDto 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<X2D1NoRefPosDto> GetTaskTar(int taskID)
- {
- lock (this)
- {
- if (_cahceTars.ContainsKey(taskID))
- {
- return _cahceTars[taskID];
- }
- else
- {
- return new List<X2D1NoRefPosDto>();
- }
- }
- }
- public void ClearAll()
- {
- lock (this)
- {
- _cahceTars.Clear();
- }
- }
- }
- }
|