线程2

阻塞线程
        阻塞调用线程
,直到某个线程终止时为止
:
t2.Join( )

  线程挂起
        在某些情况下我们需要将某些正在运行中的程序挂起.

t2.Sleep(毫秒数)

 线程的高级使用
        异步调用
2

namespace Programming_CSharp
{
using System;
using System.Threading;
class Test
{
private int counter = 0;
static void Main( )
{
//生成一个本类的实例
Tester t = new Tester( );
t.DoTest( );
}

public void DoTest( )
{
Thread t1 
= new Thread( new ThreadStart(Incrementer) );
t1.IsBackground
=true;
t1.Name 
= "线程1";
t1.Start( );
Console.WriteLine(
"开始线程 {0}",
t1.Name);
Thread t2 
= new Thread( new ThreadStart(Incrementer) );
t2.IsBackground
=true;
t2.Name 
= "ThreadTwo";
t2.Start( );
Console.WriteLine(
"开始线程 {0}",
t2.Name);
t1.Join( );
t2.Join( );

Console.WriteLine(
"所有线程完成.");
}




public void Incrementer( )
{
try
{
while (counter < 1000)
{
int temp = counter;
temp
++// 增加
Thread.Sleep(1);
counter 
= temp;
Console.WriteLine(
"线程 {0}. 增加: {1}",Thread.CurrentThread.Name,counter);
}

}

catch (ThreadInterruptedException)
{
Console.WriteLine(
"线程 {0} 中断! 清空中…",Thread.CurrentThread.Name);
}

finally
{
Console.WriteLine(
"线程 {0} 退出. ",Thread.CurrentThread.Name);
}

}

}

}


输出: 

线程开始 线程1
线程开始 线程2
线程 线程1. 增加: 
1
线程 线程2. 增加: 
2
线程 线程1. 增加: 
3
线程 线程2. 增加: 
4
线程 线程1. 增加: 
5
线程 线程2. 增加: 
6
线程 线程1. 增加: 
7
线程 线程2. 增加: 
8
线程 线程1. 增加: 
9
线程 线程2. 增加: 
10
线程 线程1 增加: 
11
线程 线程2. 增加: 
12
线程 线程1. 增加: 
13
线程 线程2. 增加: 
14
线程 线程1. 增加: 
15
线程 线程2. 增加: 
16
线程 线程1. 增加: 
17
线程 线程2. 增加: 
18
线程 线程2. 增加: 
20
posted @ 2006-07-03 19:49  随风而逝  阅读(200)  评论(0编辑  收藏  举报