private void EnsureFileUpdateWindow()
        {
            lock (_Lock)
            {
                if (_FileUpdateWindow == null)
                {
                    AutoResetEvent wait = new AutoResetEvent(false);

                    ThreadStart threadStart =
                        delegate
                        {
                            _FileUpdateWindow = new FileUpdateWindow();
                            _FileUpdateWindow.DeploymentManifest = DeploymentManifest;
                            _FileUpdateWindow.TotalUpdateSize = TotalUpdateSize;
                            wait.Set();

                            _FileUpdateWindow.Show();
                            _FileUpdateWindow.SlideUp();

                            Application app = new Application();
                            app.Run(_FileUpdateWindow);
                        };
                    Thread thread = new Thread(threadStart);
                    thread.SetApartmentState(ApartmentState.STA);
                    thread.Start();

                    wait.WaitOne();
                }
            }
        }
        private void EnsureFileUpdateWindow()
        {
            lock (_Lock)
            {
                if (_FileUpdateWindow == null)
                {
                    AutoResetEvent wait = new AutoResetEvent(false);

                    ThreadStart threadStart =
                        delegate
                    {
                        _FileUpdateWindow = new FileUpdateWindow();
                        _FileUpdateWindow.DeploymentManifest = DeploymentManifest;
                        _FileUpdateWindow.TotalUpdateSize    = TotalUpdateSize;
                        wait.Set();

                        _FileUpdateWindow.Show();
                        _FileUpdateWindow.SlideUp();

                        Application app = new Application();
                        app.Run(_FileUpdateWindow);
                    };
                    Thread thread = new Thread(threadStart);
                    thread.SetApartmentState(ApartmentState.STA);
                    thread.Start();

                    wait.WaitOne();
                }
            }
        }