基线 SVN r240
SVN-Revision: r240
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user