public void NoMoreFiles() { _info = null; if (_pending == null || _pending.Count == 0) { _lastEntryFound = true; } else { // Grab the next directory to parse var next = _pending.Dequeue(); HandleMethods.CloseHandle(_directory); _directory = next.Item1; _path = next.Item2; FindNextFile(); } }
protected void Dispose(bool disposing) { HeapBuffer buffer = Interlocked.Exchange(ref _buffer, null); if (buffer != null) { StringBuffer.Cache.Release((StringBuffer)buffer); } var queue = Interlocked.Exchange(ref _pending, null); if (queue != null) { while (queue.Count > 0) { HandleMethods.CloseHandle(queue.Dequeue().Item1); } } HandleMethods.CloseHandle(_directory); }
protected override bool ReleaseHandle() { HandleMethods.CloseHandle(handle); return(true); }