public void Add(Socket socket) { try { foreach (ListenerHandler itm in list) { if (itm.IsAvailable) { itm.SetSocket(socket); Thread thread1 = new Thread(new ThreadStart(itm.Start)); thread1.Start(); return; } } ListenerHandler h = new ListenerHandler(socket); list.Add(h); Thread thread = new Thread(new ThreadStart(h.Start)); thread.Start(); } catch (Exception e) { System.Diagnostics.Debug.WriteLine(string.Format("Error ListenerHandler 23 Thread:{0} {1}", Thread.CurrentThread.ManagedThreadId, e.ToString())); } return; }
static public ListenerHandler Next(Socket socket) { foreach (ListenerHandler itm in list) { if (itm.IsAvailable) { itm.SetSocket(socket); return itm; } } ListenerHandler newHandler = new ListenerHandler(socket); list.Add(newHandler); InstanceCount++; return newHandler; }
public void Register(ListenerHandler h) { lock (this) { if (initv == 0) { WorldDimensionInit(); } listConnection.Add(h); } }