bool CreateDialogForm()
        {
            if (collector.ProgressMonitorIsDisposed)
            {
                return(false);
            }

            dlg      = new AsynchronousWaitDialogForm(cancellation != null);
            dlg.Text = titleName;
            dlg.cancelButton.Click += CancelButtonClick;
            dlg.CreateControl();
            IntPtr h = dlg.Handle;             // force handle creation

            // ensure events occur on this thread, then register event handlers
            synchronizationHelper.SetTarget(dlg);
            collector.ProgressMonitorDisposed += progress_ProgressMonitorDisposed;
            collector.PropertyChanged         += progress_PropertyChanged;

            // check IsDisposed once again (we might have missed an event while we initialized the dialog):
            if (collector.ProgressMonitorIsDisposed)
            {
                dlg.Dispose();
                return(false);
            }

            progress_PropertyChanged(null, new System.ComponentModel.PropertyChangedEventArgs("TaskName"));

            return(true);
        }
 /// <summary>
 /// Closes the wait dialog.
 /// </summary>
 void progress_ProgressMonitorDisposed(object sender, EventArgs e)
 {
     dlg.Dispose();
     if (runningInOwnThread)
     {
         Application.ExitThread();
     }
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Closes the wait dialog.
 /// </summary>
 void progress_ProgressMonitorDisposed(object sender, EventArgs e)
 {
     dlg.Dispose();
     Application.ExitThread();
 }
Ejemplo n.º 4
0
 void DisposeInvoked()
 {
     dlg.Dispose();
     Application.ExitThread();
 }
Ejemplo n.º 5
0
		void Run()
		{
			Thread.Sleep(ShowWaitDialogDelay);
			if (collector.ProgressMonitorIsDisposed)
				return;
			
			dlg = new AsynchronousWaitDialogForm(cancellation != null);
			dlg.Text = titleName;
			dlg.cancelButton.Click += CancelButtonClick;
			dlg.CreateControl();
			IntPtr h = dlg.Handle; // force handle creation
			
			// ensure events occur on this thread, then register event handlers
			synchronizationHelper.SetTarget(dlg);
			collector.ProgressMonitorDisposed += progress_ProgressMonitorDisposed;
			collector.PropertyChanged += progress_PropertyChanged;
			
			// check IsDisposed once again (we might have missed an event while we initialized the dialog):
			if (collector.ProgressMonitorIsDisposed) {
				dlg.Dispose();
				return;
			}
			
			progress_PropertyChanged(null, new System.ComponentModel.PropertyChangedEventArgs("TaskName"));
			
			if (collector.ShowingDialog) {
				Application.Run();
			} else {
				Application.Run(dlg);
			}
		}