예제 #1
0
    private void button1_Click(object sender, EventArgs e)
    {
        // NOTE: I forget the event / method names, these are probably a little wrong.
        BackgroundWorker worker = new BackgroundWorker();

        worker.DoWork += (o, e) =>
        {
            Form2 f = new Form2();
            e.Result = f.ShowDialog();
        };
        worker.DoWorkComplete += (o, e) =>
        {
            if (e.Error != null)
            {
                MessageBox.Show(string.Format("Caught Error: {0}", ex.Message));
            }
            // else success!
            // use e.Result to figure out the dialog closed result.
        };
        worker.DoWorkAsync();
    }