public void AddEventsForDevices(IDeviceEventBinder binder) { //已有设备和新设备都会关心这些事件。 foreach (Device d in Devices) { binder.BindEventsToDevice(d); } //不要写DeviceDiscovered += binder.BindEventsToDevice; 那里面的value.Invoke会导致binder.BindEventsToDevice针对每个设备再被调用一遍。 _deviceDiscovered += binder.BindEventsToDevice; }