il modo più semplice per invocare il metodo asincrono all'interno Parallel.For
è prossimo:
Parallel.For(0, elevations.Count(), async i =>
{
allSheets.AddRange(await BuildSheetsAsync(userID, elevations[i], includeLabels));
});
==============
MarioDS menzionato assolutamente ragione nel commento che in In tal caso potresti avere eccezioni inosservate. E questa è sicuramente una cosa molto importante che dovresti sempre tenere a mente e avere un accordo con i delegati asincroni.
In questo caso, se si ritiene di avere eccezioni, è possibile utilizzare il blocco try/catch
all'interno del delegato. O in alcuni casi, se la situazione è buona, puoi iscriverti all'evento TaskScheduler.UnobservedTaskException.
fonte
2016-02-29 06:37:40
Possibile duplicato di [Nesting await in Parallel.ForEach] (https://stackoverflow.com/questions/11564506/nesting-await-in-parallel-foreach) –