123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace YG.Lib
- {
- /// <summary>
- /// 委托
- /// </summary>
- /// <param name="ob"></param>
- /// <returns></returns>
- public delegate bool queue_Delegate(object ob);
- /// <summary>
- /// 任务列表信息
- /// </summary>
- public class Queue_Task_List
- {
- /// <summary>
- /// 任务标识符
- /// </summary>
- public string queueID { get; set; }
- /// <summary>
- /// 委托对象的参数
- /// </summary>
- public object ob { get; set; }
- /// <summary>
- /// 委托
- /// </summary>
- public queue_Delegate QDTL { get; set; }
- }
- public class QueueLib
- {
- private static QueueLib qh = new QueueLib();
- public static QueueLib Instance
- {
- get { return qh; }
- }
- /// <summary>
- /// 执行事件的列表
- /// </summary>
- System.Collections.Concurrent.ConcurrentQueue<Queue_Task_List> qlist = new System.Collections.Concurrent.ConcurrentQueue<Queue_Task_List>();
- /// <summary>
- /// 添加任务到列表信息中
- /// </summary>
- /// <param name="ob"></param>
- /// <param name="qd"></param>
- public void Queue_Add(object ob, queue_Delegate qd)
- {
- qlist.Enqueue(new Queue_Task_List() { ob = ob, QDTL = qd });
- }
- /// <summary>
- /// 弹出一个任务
- /// </summary>
- /// <param name="qt"></param>
- /// <returns></returns>
- public bool Queue_Dequeue(out Queue_Task_List qt)
- {
- qt = new Queue_Task_List();
- if (qlist.Count > 0)
- {
- if (qlist.TryDequeue(out qt))
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- return false;
- }
- /// <summary>
- /// 查找任务
- /// </summary>
- /// <param name="id"></param>
- /// <param name="qt"></param>
- /// <returns></returns>
- public bool Queue_Find(string id, Queue_Task_List qt)
- {
- try
- {
- Queue_Task_List ql = qlist.Where(m => m.queueID.Equals(id)).FirstOrDefault();
- ql = qt;
- return true;
- }
- catch(Exception ex)
- {
- YG.Log.Instance.WriteLogAdd($"91-->{ex.Message}");
- return false;
- }
- }
- public void Queue_Close()
- {
-
- // qlist.
- }
- }
- }
|