【发布时间】:2023-03-04 08:46:01
【问题描述】:
我是 C# 线程的新手,在实现基本任务时需要帮助。 我目前正在使用下面的代码(不使用线程),它运行良好。 这个概念是循环遍历表的记录,在函数中传递一些表参数和返回值,然后用返回值更新表。
cmd = new OleDbCommand { Connection = con, CommandText = "Select recid,col_A,col_B from tblData"};
dr = cmd.ExecuteReader();
if (dr.HasRows)
{
cmdRec = new OleDbCommand { Connection = con };
while (dr.Read())
{
sReqResult = DoProcessing(dr["col_A"].ToString(), dr["col_B"].ToString(), dr["PARAM2"].ToString());
sSql = "update tblData set STATUS='" + sReqResult + "' where recid = '" + dr["recid"] + "'";
cmdRec.CommandText = sSql;
cmdRec.ExecuteNonQuery();
}
}
dr.close();
我想使用线程来实现上述功能以加快处理速度,这样我就可以并行运行最多 25 个线程,而不是依次处理记录。但要求是从函数中获取返回值并在表中更新相同的值。 我已经阅读了线程池和任务(在 .net 4.0 中),但我不确定如何实现它们。请用一些示例代码指导我。
【问题讨论】:
-
注意你的代码容易被SQL注入,查一下
标签: c# task threadpool