// Combinatorics algorithm private void button1_Click(object sender, EventArgs e) { BackgroundWorker Work_Thread = new BackgroundWorker(); Work_Thread.DoWork += new DoWorkEventHandler(delegate(object sender2, DoWorkEventArgs e2) { Combinatorics_Algorithm CA = new Combinatorics_Algorithm(); e2.Result = CA.Combinatorics_Algorithm_Start(); }); Work_Thread.RunWorkerCompleted += new RunWorkerCompletedEventHandler(delegate(object sender3, RunWorkerCompletedEventArgs e3) { Create_Form("Combinatorics algorithm", (string)e3.Result); }); Work_Thread.RunWorkerAsync(); }