//------------------------------------------------------- // Record traversal methods //------------------------------------------------------- /// <summary> /// Retrieve next record. Returns true if record exists and false if no more /// records are available. /// This method will block until a record is retrieved or the query is cancelled. /// </summary> public bool Next() { if (!valid) { executor.CheckForException(); return(false); } try { record = queue.Take(cancelToken); } catch (OperationCanceledException) { valid = false; executor.CheckForException(); return(false); } if (record == END) { valid = false; executor.CheckForException(); return(false); } return(true); }