protected void FinishGeneration() { if (InvokeRequired) { Invoke(new Action(FinishGeneration), new object[] {}); return; } mapHtmlPath = Path.Combine(options.OutputDirectory, "Map.html"); workerThread = null; progressHandler = null; options = null; elapsedTimer.Enabled = false; cancelButton.Visible = false; closeButton.Visible = true; openMapButton.Visible = true; overallProgressBar.Value = overallProgressBar.Maximum; subTaskProgressBar.Value = subTaskProgressBar.Maximum; subTaskLabel.Text = "Done"; SystemSounds.Beep.Play(); OnGenerationDone(EventArgs.Empty); }
public void Generate(MapGeneratorOptions options) { if (workerThread != null) { throw new InvalidOperationException("Map generation already in progress."); } if (options == null) { throw new ArgumentNullException("options"); } this.options = options; this.startTime = DateTime.Now; elapsedTimer.Enabled = true; progressHandler = new GuiMapGeneratorProgressHandler(this); workerThread = new Thread(new ThreadStart(GenerateWorker)); workerThread.Start(); }