示例#1
0
		private void MonitorClients()
		{
			Housekeeper objHousekeeper = null;

			// Note. Dedicated to removing disconnected and otherwise dormant Tcp Clients

			objHousekeeper = new Housekeeper();
			objHousekeeper.OnCallback-= new Housekeeper.ParentCallback(objHousekeeper.InvokeParentCallback);
			objHousekeeper.OnCallback+= new Housekeeper.ParentCallback(this.InvokeParentCallback);

			mobjMonitor=new PollingThread(objHousekeeper,POLLING_INTERVAL_SECS,"Thread_Housekeeper");
			mobjMonitor.Start();

		}
示例#2
0
		protected override void Dispose(bool disposing) 
		{
			int intArrIndex = 0 ;

			if (disposing) 
			{
				// Release managed resources.
			}
			// Release local resources.
			
			// Cannot use 'foreach' as member var Readonly, cannot set = null
			if (marrClients != null)
			{
				for (intArrIndex=0;intArrIndex < marrClients.Count;intArrIndex++)
				{
					if (marrClients[intArrIndex] != null)
					{
						((Client) marrClients[intArrIndex]).Shutdown();
						marrClients[intArrIndex]=null;
					}
				}
				marrClients= null;
			}

			if (mobjServerThread != null)
			{
				mobjServerThread.Abort();
				mobjServer.Stop();
				mobjServerThread = null;
			}

			if (mobjMonitor != null)
			{
				mobjMonitor.Shutdown();
				mobjMonitor = null;
			}

			// Call Dispose on Base
			base.Dispose(disposing);
		}