【发布时间】:2019-02-23 07:37:58
【问题描述】:
public IList<Student> GetStudentList()
{
var students = new List<Student>();
if(getOtherSchoolStudents)
{
var otherSchoolStudents = GetOtherSchoolStudents();
students.AddRange(otherSchoolStudents);
}
var currentSchoolStudents = GetCurrentSchoolStudents();
students.AddRange(currentSchoolStudents)
return students;
}
这里当getOtherSchoolStudents 是true 时,我想并行运行GetOtherSchoolStudents() 和GetCurrentSchoolStudents() 方法。我知道我可以将GetCurrentSchoolStudents() 移到条件范围内并同时运行,如下所示
public IList<Student> GetStudentList()
{
var students = new List<Student>();
if(getOtherSchoolStudents)
{
var otherSchoolStudents = GetOtherSchoolStudents(); // run in parallel
var currentSchoolStudents = GetCurrentSchoolStudents(); // run in parallel
students.AddRange(otherSchoolStudents);
students.AddRange(currentSchoolStudents)
}
else
{
var currentSchoolStudents = GetCurrentSchoolStudents();
students.AddRange(currentSchoolStudents);
}
return students;
}
还有其他方法吗?
【问题讨论】:
标签: c# asynchronous parallel-processing async-await task-parallel-library