我有一个列表框,我正在使用SQL Server存储的过程,该过程返回约5000行。我的存储过程看起来像这样。
SELECT UserID,LanID
FROM User
ORDER BY LanID
现在,我从此过程创建一个数据台,并将该数据列为列表框数据源。
public DataTable getAllUsers(string environment)
{
List<Criteria> userList = new List<Criteria>();
using (SqlConnection sqlConnection = new SqlConnection(GetConnectionString(environment)))
{
sqlConnection.Open();
using (SqlDataAdapter adapter = new SqlDataAdapter("usp_GetUser", sqlConnection))
{
var dataTable = new DataTable();
adapter.Fill(dataTable);
return dataTable;
}
}
}
这就是我称此方法的方式
private void setUsersListBox()
{
DataTable dtOfUsers = groupDetailDataAccess.getAllUsers("Development");
UsersListBox.DataSource = dtOfUsers;
UsersListBox.DataBind();
}
所有这些问题是一旦页面加载,我就可以在网页上完成大约10秒钟的工作,然后将其冻结约20秒。之后,它可以正常工作,直到页面刷新或重新加载。我将其范围缩小到引起问题的列表框/查询。
有办法使我更有效地提高性能?
每个逻辑操作(需要时间花费时间(都应在单独的线程上,因此它不会锁定主UI线程。