Thread t1 = new Thread(m.printOneToTen);
t1.Start();
t1.Join();
Start传参
t1 = new Thread(m.printOneToX);
t1.Start(10);//此处10为object类型进入,所以函数的参数也要是object类型
委托法传参
t1 = new Thread(() => m.printOneToX(10));
t1.Start();
Interlocked原子操作法(只能操作整数类变量)
SemaphoreSlim类锁
SemaphoreSlim splim = new SemaphoreSlim(2);//首先实例化一个SemaphoreSlim对象,向构造函数中传递的参数是允许最大线程访问数
splim.Wait();//锁住资源
//.....somecode......
splim.Release();//释放锁
ManualResetEventSlim类信号(一命令多)
ManualResetEventSlim man = new ManualResetEventSlim(false);//false意为一开始是让线程Stand by的
man.Wait();//等待信号
man.Set();//发送信号,行动开始
man.Reset();//发送信号,行动暂停
CountDownEvent类信号(多命令一)
CountdownEvent countdown = new CountdownEvent(4);//下属兵团数量
countdown.Wait();//指挥官等待报告
countdown.Signal();//兵团发送信号