public void Start()
        {
            AppDomain.CurrentDomain.UnhandledException +=
                (s, e) =>
                Tracing.Server.TraceError(
                    "Server-ApplicationException-An unhandled application exception occured-details {0}",
                    e.ExceptionObject.ToString());

            IContainer container = LoadContainer();
            _buildManager = container.Resolve<BuildManager>();

            var startupTask = new Task(() =>
                {
                    Tracing.Server.TraceInformation("Starting Build Manager");
                    _buildManager.StartProcessing(null);
                });

            startupTask.Start();
        }
        protected virtual void Dispose(bool disposing)
        {
            // Check to see if Dispose has already been called.
            if (!_disposed)
            {
                // If disposing equals true, dispose all managed
                // and unmanaged resources.
                if (disposing)
                {
                    // Dispose managed resources.
                    if (_buildManager != null)
                    {
                        _buildManager.Dispose();
                    }
                }

                _buildManager = null;

                // Note disposing has been done.
                _disposed = true;
            }
        }