private void TrainNn_Click(object sender, EventArgs e) { if (trainingIsRunning) { return; } Inference inference = new Inference(); inference.CreateNeuralNetworkArchitecture(); Thread thread = new Thread(() => { trainingIsRunning = true; inference.TrainNeuralNetwork(WriteToOutput); BeginInvoke(new Action(() => { new Form1(inference).Show(); Hide(); trainingIsRunning = false; })); }); thread.Start(); }