C#使用线程安全队列ConcurrentQueue处理数据

using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApp10
{
internal class Program
{
static void Main(string[] args)
{
Test();
Console.ReadKey();
}
private static void Test()
{
ConcurrentQueue<long> numQueue = new ConcurrentQueue<long>();
Task.Factory.StartNew(() =>
{
do
{
numQueue.Enqueue(DateTime.Now.Ticks);
Thread.Sleep(500);
} while (true);
});
Task.Factory.StartNew(() =>
{
do
{
numQueue.Enqueue(DateTime.Now.Ticks);
Thread.Sleep(1000);
} while (true);
});
Task.Factory.StartNew(() =>
{
do
{
long result = 0;
numQueue.TryDequeue(out result);
if (result > 0)
{
Console.WriteLine($@"[{DateTime.Now.ToString("HH:mm:ss")}]{result}");
}
else
{
Thread.Sleep(0);
}
} while (true);
});
}
}
}

 

posted @   字母搬运工-Hauk  阅读(62)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示