Are regular iterator blocks (i.e. \"yield return\") incompatible with \"async\" and \"await\"?
This gives a good idea of what I\'m trying to do:
asyn
This solution works as expected. Note the await Task.Run(() => enumerator.MoveNext())
part.
using (var enumerator = myEnumerable.GetEnumerator())
{
while (true)
{
if (enumerator.Current != null)
{
//TODO: do something with enumerator.Current
}
var enumeratorClone = monitorsEnumerator;
var hasNext = await Task.Run(() => enumeratorClone.MoveNext());
if (!hasNext)
{
break;
}
}
}