小弟刚开始学习多线程编程,有点问题不太理解,还请大家指教12。
问题1:在主线程中调用子线程,都是子线程运行完后,才运行主线程吗。(如果不是,请给举个例子)
问题2:如果是的话,那把子线程的代码直接写入主线程中不就好了。(不知道我理解的对不,如果不对,请说说为什么)
小弟,在着感谢大家了

解决方案 »

  1.   

    子线程和主线程是平行的。
    你可以这样做一下。
      private void button1_Click(object sender, EventArgs e)
            {
                Thread thread = new Thread(new ThreadStart(test));
                thread.Start();
                MessageBox.Show("");
            }        public void test()
            {
                int num = 0;
                for (int i = 0; i < 20; i++)
                {
                    Thread.Sleep(200);
                    num++;
                }            MessageBox.Show(num.ToString());
            }这个时候你可以先看到一个空的Messagebox,然后再过了大约4S之后,再看到另外一个MessageBox.
      

  2.   

     主线程和子线程共同占用一个CPU,每个线程有一个时间片,所以是宏观的并行,微观的串行.