Possible interface
public interface IActor
{
/* ... */
Task Enumerate<T>(IAsyncEnumerator<T> enumerator, Action<T> currentValueHandler, Action completionHandler = null);
Task Enumerate<T>(IAsyncEnumerator<T> enumerator, Func<T, Task> currentValueAsyncHandler, Action completionHandler = null);
}
Usage
IAsyncEnumerator<int> enumerator = /* .... */;
_actor.Enumerate(enumerator, current => {}, () => {});
Notes
- Need to handle case where
completionHandler is actually marked as async - i.e. it's really of type Func<Task>.
- Is
Enumerate the best name?