using SlnMesnac.LabelPrint.Model; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SlnMesnac.LabelPrint.TaskQueue { public class TaskHelper { #region 单例实现 private static readonly Lazy lazy = new Lazy(() => new TaskHelper()); public static TaskHelper Instance { get { return lazy.Value; } } #endregion #region 委托事件 /// /// 清除标签信息 /// /// public delegate void ClearLabelInfoDataGrid(BaseLabelInfo baseLabelInfo); public event ClearLabelInfoDataGrid ClearLabelInfoDataGridEvent; #endregion public TaskHelper() { } private List labelTask = new List(); /// /// 添加标签任务 /// /// public void AddTask(List labelInfos) { if (labelInfos == null) return; labelTask.AddRange(labelInfos); } /// /// 获取标签任务,根据时间返回第一个不同的标签 /// /// public BaseLabelInfo GetTask() { return labelTask.OrderBy(x => x.recordTime).FirstOrDefault(); } /// /// 删除标签任务,打印完成后删除队列中的任务 /// /// public void RemoveTask(BaseLabelInfo item) { labelTask.Remove(item); ClearLabelInfoDataGridEvent?.Invoke(item); } } }