Dispose模式是用于资源管理的常用方法,比较简单。 给代码吧。 // 摘要: // 定义一种释放分配的资源的方法。 [ComVisible(true)] public interface IDisposable { // 摘要: // 执行与释放或重置非托管资源相关的应用程序定义的任务。 void Dispose(); } using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DisposePatten { public class OSHandle:IDisposable { private IntPtr handle; public OSHandle(IntPtr handle) { this.handle = handle; } ~OSHandle() { Dispose(); } public void Dispose() { GC.SuppressFinalize(this); Dispose(true); } public void Close() { Dispose(); } private void Dispose(bool disposing) { lock (this) { if (disposing) { } if (IsValid) { CloseHandle(handle); handle = InvalidHandle; } } } public IntPtr InvalidHandle { get { return IntPtr.Zero; } } public IntPtr ToHandle() { return handle; } public static implicit operator IntPtr(OSHandle oshandle) { return oshandle.ToHandle(); } public Boolean IsValid { get { return (handle != InvalidHandle); } } public Boolean IsInvalid { get { return !IsValid; } } [System.Runtime.InteropServices.DllImport("Kernel32")] private extern static Boolean CloseHandle(IntPtr handle); } }