/// <summary> /// Allows calling dispose explicitly or from the finalizer /// </summary> /// <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources</param> protected virtual void Dispose(bool disposing) { if (!this.disposed) { /* string traceStr = string.Format( * CultureInfo.InvariantCulture, * "FaceTracker::Dispose() - TotalTracks={0}, TotalSuccessTracks={1}, TimePerTrack={2:F3}ms, TimePerSuccessTrack={3:F3}ms, TimePerDataCopy={4:F3}ms, TimePerStartOrContinueTracking={5:F3}ms", * this.totalTracks, * this.totalSuccessTracks, * this.totalTracks > 0 ? (double)this.trackStopwatch.ElapsedMilliseconds / this.totalTracks : 0, * this.totalSuccessTracks > 0 ? (double)this.totalSuccessTrackMs / this.totalSuccessTracks : 0, * this.totalTracks > 0 ? (double)this.copyStopwatch.ElapsedMilliseconds / this.totalTracks : 0, * this.totalTracks > 0 ? (double)this.startOrContinueTrackingStopwatch.ElapsedMilliseconds / this.totalTracks : 0); #if DEBUG * Debug.WriteLine(traceStr); #else * Trace.WriteLineIf(traceLevel >= TraceLevel.Info, traceStr); #endif*/ if (this.faceModel != null) { this.faceModel.Dispose(); this.faceModel = null; } if (this.frame != null) { this.frame.Dispose(); this.frame = null; } if (this.colorFaceTrackingImage != null) { this.colorFaceTrackingImage.Dispose(); this.colorFaceTrackingImage = null; } if (this.depthFaceTrackingImage != null) { this.depthFaceTrackingImage.Dispose(); this.depthFaceTrackingImage = null; } if (this.faceTrackerInteropPtr != null) { Marshal.FinalReleaseComObject(this.faceTrackerInteropPtr); this.faceTrackerInteropPtr = null; } this.disposed = true; } }
/// <summary> /// Allows calling dispose explicitly or from the finalizer /// </summary> /// <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources</param> protected virtual void Dispose(bool disposing) { if (!this.disposed) { string traceStr = string.Format( CultureInfo.InvariantCulture, "FaceTracker::Dispose() - TotalTracks={0}, TotalSuccessTracks={1}, TimePerTrack={2:F3}ms, TimePerSuccessTrack={3:F3}ms, TimePerDataCopy={4:F3}ms, TimePerStartOrContinueTracking={5:F3}ms", this.totalTracks, this.totalSuccessTracks, this.totalTracks > 0 ? (double)this.trackStopwatch.ElapsedMilliseconds / this.totalTracks : 0, this.totalSuccessTracks > 0 ? (double)this.totalSuccessTrackMs / this.totalSuccessTracks : 0, this.totalTracks > 0 ? (double)this.copyStopwatch.ElapsedMilliseconds / this.totalTracks : 0, this.totalTracks > 0 ? (double)this.startOrContinueTrackingStopwatch.ElapsedMilliseconds / this.totalTracks : 0); #if DEBUG Debug.WriteLine(traceStr); #else Trace.WriteLineIf(traceLevel >= TraceLevel.Info, traceStr); #endif if (this.faceModel != null) { this.faceModel.Dispose(); this.faceModel = null; } if (this.frame != null) { this.frame.Dispose(); this.frame = null; } if (this.colorFaceTrackingImage != null) { this.colorFaceTrackingImage.Dispose(); this.colorFaceTrackingImage = null; } if (this.depthFaceTrackingImage != null) { this.depthFaceTrackingImage.Dispose(); this.depthFaceTrackingImage = null; } if (this.faceTrackerInteropPtr != null) { Marshal.FinalReleaseComObject(this.faceTrackerInteropPtr); this.faceTrackerInteropPtr = null; } this.disposed = true; } }