比如执行一段程序时,执行过程中主窗口被卡住,只有执行完后才能移动窗口,例如执行循环,需要程序执行完后才可以移动窗口,请问应该用什么办法解决?
private void MenuItem1_Click(object sender, EventArgs e)
{
    string str = "abcde";
    for (int i = 1; i <= 1000; i++)
    {
str = str + "abcde";
    }
    textbox1.Text = str;
}

解决方案 »

  1.   

    多线程和异步
      public Form1()
            {
                InitializeComponent();
            }        public void Sum ()
            {
                //休眠
                Thread.Sleep(5000);
                MessageBox.Show("Sum执行完毕");
            }
            private void button1_Click(object sender, EventArgs e)
            {
                //创建一个新线程
                Thread td1 = new Thread(Sum);            //开始线程
                td1.Start();        }
      

  2.   

    看这个:http://topic.csdn.net/u/20120805/01/58230777-2767-4337-a8f8-a3725e7db4b1.html