/// <summary>
        /// Allows code to register itself to receive notifications of batch processing events
        /// </summary>
        /// <param name="Client">Reference to the IBatchClient interface</param>
        public void RegisterClient(IBatchClient Client)
        {
            //
            // Upon new registration, let the client know about all pending batch processes.
            foreach (BatchProcess Process in m_Queue)
            {
                Client.AddProcess(
                    Process,
                    GPDatabaseUtils.FieldValue(Process.ProjectID, "tblProject", "Name"),
                    Process.Profile.Name,
                    Process.TimeAdded,
                    Process.TimeStarted,
                    Process.IsStarted);
            }

            //
            // Indicate to the thread a new client has been added
            m_EventClient.Enqueue(Client);
            m_CommandQueue.Enqueue(Command.RegisterClient);
            wh_CommandEvent.Set();
        }