C#如何获取待处理队列中有未处理的消息
在C#中,可以使用ConcurrentQueue
using System;
using System.Collections.Concurrent;
using System.Threading;
using System.Threading.Tasks;
class Program
{
static ConcurrentQueue<string> messageQueue = new ConcurrentQueue<string>();
static void Main()
{
// 开启一个任务来处理消息队列
Task.Run(() => ProcessMessages());
// 添加一些消息到队列中
messageQueue.Enqueue("消息1");
messageQueue.Enqueue("消息2");
messageQueue.Enqueue("消息3");
// 等待一段时间以便让任务处理消息
Thread.Sleep(1000);
// 添加更多消息到队列中
messageQueue.Enqueue("消息4");
messageQueue.Enqueue("消息5");
// 等待一段时间以便让任务处理消息
Thread.Sleep(1000);
// 结束程序
Console.WriteLine("按任意键退出...");
Console.ReadKey();
}
static void ProcessMessages()
{
while (true)
{
if (messageQueue.TryDequeue(out string message))
{
Console.WriteLine("处理消息:" + message);
}
else
{
// 如果队列为空,则等待一段时间再继续处理
Thread.Sleep(100);
}
}
}
}
这个示例中,我们使用ConcurrentQueue
原文地址: http://www.cveoy.top/t/topic/iZUx 著作权归作者所有。请勿转载和采集!