학생 목록을 얻은 후에 병렬/독립적으로 학생 목록을 실행해야하는 시나리오가 있습니다. 그러나 다음 코드와 함께 실행하면 프로그램이 제대로 완료되지 않고 종료됩니다.C# 예외없이 프로세스가 종료됩니다.
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
}
}
내가 UpdateStudentAsync
이 F10
갈 경우이 방법은 아무것도 콘솔 응용 프로그램 중지를 반환하지 않습니다, 문제를 일으키는시피. 심지어 모든 전화를 걸었습니다 try-catch
나는 아무것도 찾을 수 없습니다. 각 디버그 지점에서 단계를 수행하면 예상되는 결과를 얻습니다.
어디에 문제가 있는지 알 수 없습니다.
이됩니까? –
'ValidateSingleStudentAsync'가 호출 된 곳에서 코드를 공유하고 주 응용 프로그램에 대한 자세한 정보를 제공하십시오. 즉, 'ValidateSingleStudentAsync'가 임시 컨텍스트로 실행중인 경우 Windows Form App 또는 Console 응용 프로그램에서 실행 중입니다. –
This 무엇이 필요한지 https://stackoverflow.com/a/39174582/782754 –