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;
 }
Пример #3
0
        public void Register(ListenerHandler h)
        {
            lock (this)
            {
                if (initv == 0)
                {
                    WorldDimensionInit();
                }

                listConnection.Add(h);
            }
        }