52 lines
1.3 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|