C#多线程简单例子

来源:百度知道 编辑:UC知道 时间:2024/05/21 15:55:02
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace winConsole
{
class Program
{
static void function()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}
}
static void Main(string[] args)
{
Console.WriteLine("Main begin!");
ThreadStart ts = new ThreadStart(function);
Thread t = new Thread(ts);
t.Start();
Console.WriteLine("Main end!");
}
}
}

上面程序输出 时为什么先输出:
Main begin!
Main end!
再输出1...10
线程调用明明是在上面两行输出 中间的啊?

这是正确的。因为新建的线程在运行前,主线程已经结束了。
如果t.Start() 后有更多费时的操作的话,那可能结果是你想要的那样!

t.Start();
Console.WriteLine("Main end!");

主线程启动新线程后,第一件事就是输出结束信息.
而新线程在启动之后,要初始化一个变量,做一个比较,然后才是输出数字.
结果当然是你看到的输出啦.

一楼正解,其实线程的东西并不是同时进行的而是岔开了来的先执行一下1线程在执行1下2线程。。。。