AutoResetEvent与ManualResetEvent的区别

这两个方法都是用来线程间通信的。


相当于在线程中放个信号灯,放信号灯的语句都为对象方法waitone

构造的时候需要把信号灯设置为false,使得信号灯起作用。设置为true信号灯不起作用。

AutoResetEvent是在当前线程调用set方法激活某线程后,车辆可以通行,也就是可以执行waitone之后的代码,状态自动重置。也就是说,如果有多个线程都设置了同一个信号灯,每次set只放行一个线程,起到线程独占的效果。

ManualResetEvent需要手动调用reset方法,使状态重置。如果有多个线程设置同样的一个信号灯,set后,如果没有特殊处理,多个线程都会执行。






你可能感兴趣的:(C#)