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(); }
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); }