private static void NotifyAListenerWithCopy( IEnumerable <Frame> motionFrames, IEnumerable <Portrait> portraitList, IPortraitHandler listener) { var frameCpy = listener.WantFrame ? motionFrames.ToList().ConvertAll(m => m.Clone()) : null; var portraitCpy = portraitList.ToList().ConvertAll(p => p.Clone()); try { listener.HandlePortraits(frameCpy, portraitCpy); } catch (System.Exception ex) { frameCpy.ToList().ForEach(f => f.Dispose()); portraitCpy.ToList().ForEach(p => p.Dispose()); throw; } }
private static void NotifyAListenerWithCopy( IList<Frame> motionFrames, IList<Portrait> portraitList, IPortraitHandler listener) { var frameCpy = listener.WantFrame ? motionFrames.ToList().ConvertAll(m => m.Clone()) : null; var portraitCpy = portraitList.ToList().ConvertAll(p => p.Clone()); try { listener.HandlePortraits(frameCpy, portraitCpy); } catch (System.Exception ex) { frameCpy.ToList().ForEach(f => f.Dispose()); portraitCpy.ToList().ForEach(p => p.Dispose()); throw; } }