private void Button1_Click(object sender, EventArgs e) { OpenFileDialog dg = new OpenFileDialog { Filter = "bmp files (*.bmp)|*.bmp|All files (*.*)|*.*" }; if (dg.ShowDialog() != DialogResult.OK) { return; } textBox1.Text = dg.SafeFileName; map = new Bitmap(dg.FileName); model = new MapModel(map); BackgroundWorker bg = new BackgroundWorker(); bg.DoWork += (o, args) => model.DoAnalysis(); bg.RunWorkerCompleted += AnalysisComplete; bg.RunWorkerAsync(); lbInfo.Text = "Analyzing."; }