我正在使用Simple.Data与SQL Server,我有多个彼此独立的方法。在表单中,我有多个需要填充的下拉列表,我认为这些可以异步填充。我有一个存储库,返回实体列表。如何使用Simple.Data异步执行多个数据库调用
从我的Asp.Net网站,我通过一个呼吁仓库的一个方法,并将其绑定到下拉列表这里是一个示例代码
private void Initialize()
{
LoadTechnologies();
LoadInstallationTypes();
LoadProvinces();
LoadYears();
}
private void LoadTechnologies()
{
ddlTechnologies.DataSource = _GizRepository.GetTechnologies();
ddlTechnologies.DataValueField = "Name";
ddlTechnologies.DataTextField = "Name";
ddlTechnologies.Items.Insert(0, new ListItem("All", "-1"));
ddlTechnologies.DataBind();
}
private void LoadInstallationTypes()
{
ddlInstallationType.DataSource = _GizRepository.GetInstallationTypes();
ddlInstallationType.DataValueField = "Type";
ddlInstallationType.DataTextField = "Type";
ddlInstallationType.Items.Insert(0, new ListItem("Any", "-1"));
ddlInstallationType.DataBind();
}
private void LoadProvinces()
{
ddlProvinces.DataSource = _GizRepository.GetProvinces();
ddlProvinces.DataValueField = "Name";
ddlProvinces.DataTextField = "Name";
ddlProvinces.Items.Insert(0, new ListItem("All", "-1"));
ddlProvinces.DataBind();
}
private void LoadYears()
{
ddlYearFrom.DataSource = _GizRepository.GetYears();
ddlYearFrom.DataValueField = "Year";
ddlYearFrom.DataTextField = "Year";
ddlYearFrom.DataBind();
ddlYearTo.DataSource = _GizRepository.GetYears();
ddlYearTo.DataValueField = "Year";
ddlYearTo.DataTextField = "Year";
ddlYearTo.DataBind();
}
您可以从代码中看到以上所有我我正在从存储库中提取一些列表并将它们绑定到下拉列表。我想要异步执行这些方法而不是同步执行,请指导它如何完成?
非常感谢,我明白这些将是异步调用,但不是平行的。你能帮助我们如何让它们平行吗? –
他们将平行。 Task.Run从线程池获取备用线程。每个任务都在一个单独的线程中运行。 – bradgonesurfing
大部分时间都在IO上等待。当任务在IO上等待时,线程返回到线程池。当任务需要继续时,从线程池中抓取另一个线程。 – bradgonesurfing