Eabei.GoBangGame/Eabei.GoBangService/Data/DataThread.cs

(完整代码) 1KB

using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


/********************************
*  命名空间: Eabei.GoBangGame.Data
*  
*  功    能: N/A
*  类    名: DataThread
*  
*  作    者: EB
*  创建日期: 2022/6/28 17:38:30
*********************************/

namespace Eabei.GoBangService.Data
{
    /// <summary>
    /// 提供数据异步处理机制
    /// </summary>
    /// <typeparam name="TData">提供一种任意的数据类型</typeparam>
    public class DataThread<TData> : IData<TData>
    {
        private ConcurrentQueue<TData> dataQueue = new();
        private bool running = false;

        public event Action<TData> DataThreadCallback;

        public void Start()
        {
            running = true;

            //ThreadPool.QueueUserWorkItem(o => DataDequeueThread());
            Task.Run(() => DataDequeueThread());
        }

        public void Enqueue(TData data)
        {
            dataQueue.Enqueue(data);
        }

        public void Stop()
        {
            running = false;
        }

        private void DataDequeueThread()
        {
            while (running)
            {
                if (dataQueue.TryDequeue(out TData data))
                    DataThreadCallback?.Invoke(data);
                Thread.Sleep(10);
            }
        }
    }
}

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。