public static void Close() { if (_DEnginer != IntPtr.Zero) { ArcWrapper.DClose(_DEnginer); _DEnginer = IntPtr.Zero; } if (_DBuffer != IntPtr.Zero) { Marshal.FreeCoTaskMem(_DBuffer); _DBuffer = IntPtr.Zero; } for (int i = 0; i < TaskNum; i++) { if (_REngine[i] != IntPtr.Zero) { ArcWrapper.RClose(_REngine[i]); _REngine[i] = IntPtr.Zero; } if (_RBuffer[i] != IntPtr.Zero) { Marshal.FreeCoTaskMem(_RBuffer[i]); _RBuffer[i] = IntPtr.Zero; } foreach (var item in _FaceLib[i].Items) { Marshal.FreeCoTaskMem(item.FaceModel.PFeature); } } foreach (var item in CacheFaceResults.Items) { Marshal.FreeCoTaskMem(item.FaceModel.PFeature); } }
public static void Close() { if (_DEnginer != IntPtr.Zero) { ArcWrapper.DClose(_DEnginer); _DEnginer = IntPtr.Zero; } if (_REngine != IntPtr.Zero) { ArcWrapper.RClose(_REngine); _REngine = IntPtr.Zero; } if (_DBuffer != IntPtr.Zero) { Marshal.FreeCoTaskMem(_DBuffer); _DBuffer = IntPtr.Zero; Marshal.FreeCoTaskMem(_RBuffer); _RBuffer = IntPtr.Zero; } foreach (var item in _FaceLib.Items) { Marshal.FreeCoTaskMem(item.FaceModel.pbFeature); } }