我从数据库中选择了数据并填充了我的数据表。
此外,我有10个线程从我的数据表中选择所需的数据。
当这些线程同时启动 时,cpu使用率会上升到100%。
void TRD1_Task(DataTable myDataTable, Int64 thisCode)
{
DataTable dt1 = (from x in myDataTable.AsEnumerable()
where x.Field<Int64>("Code") == thisCode
select x).CopyToDataTable();
}
我该怎么办?
感谢。
答案 0 :(得分:2)
我使用linq to sql
不,你真的没有。看这里:
void TRD1_Task(DataTable myDataTable, Int64 thisCode)
没有使用LINQ to SQL。那是使用DataTable
。这意味着您已经将所有数据提取到您的流程中。别这么做。
如果您使用的是LINQ to SQL,那么您的查询将类似于:
var query = from user in dbContext.Users
where user.Code == thisCode
select user;
您可能最初使用LINQ to SQL来获取DataTable
的数据,但如果是,那么:
DataTable
时很奇怪,大概是你有一个非常好的强类型模型CPU问题只是一个副作用,因为您不应该首先在流程中拥有所有这些数据。