黑马程序员技术交流社区

标题: 关于MessageBox.Show的阻塞?? [打印本页]

作者: 胡化敏    时间: 2013-4-9 15:26
标题: 关于MessageBox.Show的阻塞??
本帖最后由 胡化敏 于 2013-4-16 11:11 编辑

private void button1_Click(object sender, EventArgs e)
        {
         

           MessageBox.Show("qq");
           int i = 7;
           MessageBox.Show(i.ToString());

        }

当我运行的时候,要有提示信息,但是也不影响程序的继续运行,即显示提示信息“qq"也不印象下面的代码继续执行。求解
作者: 黑马田杰    时间: 2013-4-9 17:19
或许开两个线程可以达到你的要求
作者: 胡化敏    时间: 2013-4-9 19:12
黑马田杰 发表于 2013-4-9 17:19
或许开两个线程可以达到你的要求

要的不是这个方法,不过还是谢谢了
作者: 贡宗新    时间: 2013-4-9 23:08
今天刚看到这个问题,因为程序是从上至下运行的,而且MessageBox有这个特性
作者: 胡化敏    时间: 2013-4-10 08:15
贡宗新 发表于 2013-4-9 23:08
今天刚看到这个问题,因为程序是从上至下运行的,而且MessageBox有这个特性

咋解决了
作者: HM朱百青    时间: 2013-4-10 10:13
你的意思是在弹出qq以后  然后你在点击按钮,弹出i的值???
作者: zerochen46    时间: 2013-4-12 22:11
将  MessageBox.Show("qq")  放入到一个线程中执行咯~
作者: 曾玉锋    时间: 2013-4-13 00:09
如果你不想另外启动一个Thread来执行的话,那就用异步委托了,其实本质上还是用到了多线程。
  1.     public delegate void Adelegate();
  2.     public partial class Form1 : Form
  3.     {
  4.         public Form1()
  5.         {
  6.             InitializeComponent();
  7.             //Control.CheckForIllegalCrossThreadCalls = false;
  8.         }

  9.         private void button1_Click(object sender, EventArgs e)
  10.         {
  11.             Adelegate dgt = new Adelegate(() => {
  12.                 MessageBox.Show("qq");
  13.             });
  14.             dgt.BeginInvoke(null,null);
  15.         }
  16.       }
  17. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2