/// <summary> /// Start the device for a frame grab, wait a bit and then return the result. /// This method MUST raise a CameraThumbnailProduced event, even in case of error. /// </summary> public void Run(object data) { log.DebugFormat("Starting {0} for thumbnail.", summary.Alias); device.FrameProduced += device_FrameProduced; device.FrameError += device_FrameError; device.Start(); waitHandle.WaitOne(timeout, false); lock (locker) { if (!cancelled) { device.FrameProduced -= device_FrameProduced; device.FrameError -= device_FrameError; device.Stop(); } } if (CameraThumbnailProduced != null) { CameraThumbnailProduced(this, new CameraThumbnailProducedEventArgs(summary, image, imageDescriptor, hadError, cancelled)); } }
public void Start() { log.DebugFormat("Starting device {0}, {1}", summary.Alias, summary.Identifier); device.FrameProduced += device_FrameProduced; device.FrameError += device_FrameError; device.GrabbingStarted += device_GrabbingStarted; device.Start(); }