在C#中,可以使用ConcurrentQueue类来实现待处理队列,并使用TryDequeue方法来获取未处理的消息。下面是一个简单的示例:

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作为待处理队列,并使用TryDequeue方法来尝试从队列中获取未处理的消息。如果成功获取到消息,则进行处理;否则等待一段时间再进行尝试

C#如何获取待处理队列中有未处理的消息

原文地址: http://www.cveoy.top/t/topic/iZUx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录