public void run() {try {int n = task.runAndMaybeStats(letChildReport);if (anyExhaustibleTasks) {updateExhausted(task);}count += n;} catch (NoMoreDataException e) {exhausted = true;} catch (Exception e) {throw new RuntimeException(e);}}
public override void Run(){try{int n = task.RunAndMaybeStats(outerInstance.letChildReport);if (outerInstance.anyExhaustibleTasks){outerInstance.UpdateExhausted(task);}count += n;}catch (NoMoreDataException){outerInstance.exhausted = true;}catch (Exception e){throw new Exception(e.ToString(), e);}}