在多線程中,有時候使用MessageBox.Show方法彈出對話框,彈出的Messagebox不是模態的,不能滿足我的要求.經過研究,如下實現
private void button1_Click(object sender, EventArgs e) { //定義一個求和的方法 Func<int, int> sum = null;
sum=(number) => { if (number == 1) { Thread.Sleep(1000); return 1; } else { return number + sum(number - 1); } }; //一個線程來求1-30的數字的和 System.Threading.Thread th = new Thread(new ThreadStart(() => { int aa = Sum(30); AppData.Do(() => { //MessageBox.Show( aa.ToString()); MessageBox.Show(this, aa.ToString()); }); })); th.Start(); //this.button1.Text = "Main"; MessageBox.Show("do something"); }
csdn沒分數了,我也是被逼的,要AppData.Do的實現方法,請到https://download.csdn.net/download/hanghangz/10436338處下載.