J'ai un scénario où je dois exécuter la liste des étudiants en parallèle/indépendamment une fois que j'ai la liste des étudiants. Cependant quand je cours ceux avec le code un peu suivant, le programme se termine sans compléter correctement.C# attend des sorties de processus sans exception
public async Task ProcessStudents()
{
var students = await GetStudentsAsync().ConfigureAwait(false);
ProcessSingleStudent(students);
}
private static ProcessSingleStudent(IEnumerable<StudentModel> students)
{
students.ForEach(async student =>
{
await ValidateSingleStudentAsync(student).ConfigureAwait(false);
}
}
private async Task ValidateSingleStudentAsync(StudentModel student)
{
//Do some validations here
if(validate)
{
var updated = await UpdateStudentAsync(student).configureAwait(false); //<== This cause issue
}
}
Comme je vois UpdateStudentAsync
causant problème, que si aller avec F10
cette méthode ne retourne rien et arrête application de la console. Même j'ai mis tous les appels try-catch
Je n'ai rien trouvé. Si j'interviens dans chaque point de débogage, j'obtiens le résultat attendu.
Impossible de comprendre où se situe le problème.
Où est le code de 'UpdateStudentAsync'? –
S'il vous plaît, partagez le code où 'ValidateSingleStudentAsync' est invoqué et donnez plus d'informations sur l'application principale, cela signifie: Est en cours sur Windows Form App ou Console App, si' ValidateSingleStudentAsync'' est exécuté dans un contexte temporaire, etc –
est ce que vous avez besoin https://stackoverflow.com/a/39174582/782754 –