Files
2026-07-10 15:25:05 +08:00

52 lines
1.3 KiB
C#

namespace LSServerService
{
using System;
using System.Collections.Generic;
using System.Threading;
internal static class LSQueueManage
{
private static Queue<LSSocketRev> LSSocketRevQueue = new Queue<LSSocketRev>();
private static AutoResetEvent Rev_Event = new AutoResetEvent(true);
public static LSSocketRev GetSocketRevData()
{
LSSocketRev socketRevData = null;
if (LSSocketRevQueue.Count > 0)
{
lock (LSSocketRevQueue)
{
socketRevData = LSSocketRevQueue.Dequeue();
}
}
else
{
Rev_Event.WaitOne();
}
if (socketRevData == null)
{
socketRevData = GetSocketRevData();
}
return socketRevData;
}
public static void InsertSocketRevData(LSSocketRev socketRev)
{
lock (LSSocketRevQueue)
{
LSSocketRevQueue.Enqueue(socketRev);
}
Rev_Event.Set();
}
public static int LSSocketRevQueueCount
{
get
{
return LSSocketRevQueue.Count;
}
}
}
}