private void cmdThread()
{
while (true)
{
mutpac.WaitOne();
if (packetQ.Count == 0)
{
mutpac.ReleaseMutex();
Thread.Sleep(10);
continue;
}
else
{
packet data = packetQ.Dequeue();
mutpac.ReleaseMutex();
if (data.Cmd == null)
{
continue;
}
switch (data.Cmd)
{
case "l":
userlogin(data);
Thread thr = new Thread(new ParameterizedThreadStart(listenthread));
thr.Start(data.Name);
break;
case "q":
userlogout(data, true);
break;
case "q!":
userlogout(data, false);
break;
default:
defaultcmd(data);
break;
}
}
}
}