protected override void Dispose(bool disposing) { if (isDisposed) return; if (disposing) { for (int i = 0; i < searchables.Length; i++) searchables[i].Close(); } isDisposed = true; }