using System; namespace IvfTl.Hardware.Impl { /// /// 全进程唯一相机原生调用锁实现。替代 control/operate/af 三套各自的 static locker(13 §②/§3.5)。 /// 所有 CameraImpl 的 native 调用都经本类的同一把 _gate 锁串行化——跨相机、跨调用者一把锁, /// 因 mvcapi.dll 非线程安全。 /// ⚠ 真机验证 V-011:一把全局锁是否拖慢多舱并行采集;如需要可后续改按相机分锁但保跨调用者互斥。 /// public sealed class CameraGateImpl : ICameraGate { private readonly object _gate = new object(); public T Invoke(Func nativeCall) { lock (_gate) { return nativeCall(); } } public void Invoke(Action nativeCall) { lock (_gate) { nativeCall(); } } } }