private void button1_Click(object sender, EventArgs e) { ThrowException(); } private void button2_Click(object sender, EventArgs e) { Thread t = new Thread(ThrowException); t.Start(); } private void button3_Click(object sender, EventArgs e) { (new VoidHandler(ThrowException)).BeginInvoke(null, null); } private void ThrowException() { throw new Exception("Test"); }