//--- Event Handlers --- private void startButton_Click(object sender, EventArgs e) { startButton.Enabled = false; int numThreads; if (!int.TryParse(numThreadsLabeledTextBox.TextBoxText, out numThreads) || numThreads <= 0) { MessageBox.Show("Invalid thread count"); } var passwordGenerator = new PasswordGenerator(); _cracker.StartAttack(databasePathLabeledTextBox.TextBoxText, 2, passwordGenerator); }