private void backgroundWorkerExecute_DoWork(object sender, DoWorkEventArgs e) { var worker = (BackgroundWorker)sender; var args = (Object[])e.Argument; _name = (string)args[0]; var executor = new SystemExecutor((string)args[0], (BrandList)args[1], (TimeFrame)args[2]); executor.Execute(worker, WrapInvoke(textBoxExecute.AppendText)); if (worker.CancellationPending) { e.Cancel = true; } }