public void Process(IProcessable process, Action action) { ProgressBar = new ProcessableProgressBar(process, action); ProgressBar.OnStart += OnStart; ProgressBar.OnUpdate += OnUpdate; ProgressBar.OnFinished += OnFinished; processing = new ThreadStart(action); ProcessingThread = new Thread(processing); ProcessingThread.Start(); ShowDialog(); }