一、线程运行如果要带入参数,可以选择创建类的方法来实现——每实例化一个类的对象,在建构子中就可以开一个线程做事。这样就能把参数传入建构子中,在建构子中对类的字段赋值,避免了线程调用带参数。
二、Mutex
,当多个线程控制同一个资源时,一般要注意不能让多个线程同时操作它,这时引入Mutex 。
定义:Mutex mutex = new Mutex();
使用: Mutex就像一个旗标,只有拿着这个旗标的人,才能做事。当线程调用Function
方法时,判断是否有线程拿了mutex
,如果有人拿了,就会等着。等另一个线程做完,释放掉mutex,当前线程就能开始做事了。
Mutex mutex = new Mutex();
void Function ()
{
mutex.WaitOne()//加入有线程拿到这个了就等,没有拿就做事情。
// do something
mutex.ReleaseMutex();
}