与手工的锁定相比,你可以进行说明性的锁定,用衍生自ContextBoundObject 并标以Synchronization特性的类,它告诉CLR自动执行锁操作,看这个例子: [Synchronization]//必须添加这个特性 public class AutoLock : ContextBoundObject { public void Demo() { EventWaitHandle wh = new AutoResetEvent(false); Console.Write("Start..."); Thread.Sleep(1000); // 我们不能抢占到这 Console.WriteLine("end"); // 自动锁开始起作用 } } public class Test { public static void Main() { AutoLock safeInstance = new AutoLock(); new Thread(safeInstance.Demo).Start(); // 并发地 new Thread(safeInstance.Demo).Start(); // 调用Demo safeInstance.Demo(); // 方法3次 Console.ReadKey(); } }