举个例子
- private void Form1_Load(object sender, EventArgs e)
- {
- //线程1
- Thread ThreadA = new Thread(th1);
- //启动线程
- ThreadA.Start();
- // 等待线程结束
- ThreadA.Join();
- // 开始主线程任务
- for (int i = 0; i < 1000000; i++)
- {
- if (i % 10000 == 0)
- Console.Write("2");
- }
- }
- private void th1()
- {
- for (int i = 0; i < 1000000; i++)
- {
- if (i % 10000 == 0)
- Console.Write("1");
- }
- }
复制代码
如果把ThreadA.Join();这句代码注释的话你会发现输出是没有顺序的类似111221212122这样的,如果加上ThreadA.Join();后就会等待A线程结束后才会输出11111,所以你可以在A线程里判断一个值,如果符合就让线程正常结束退出。 |