我是c#線程的新手,需要幫助實現一項基本任務。 我目前正在使用下面的代碼(沒有使用線程),它運行良好。 這個概念是循環遍歷一個表的記錄,在函數中傳遞一些表參數,除了返回值,然後用返回值更新表。使用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();
我想用線程來加快這一進程,從而代替sequentely處理的記錄,我可以並行運行最多25個線程來實現上述功能。但要求是從函數獲取返回值並在表中更新相同的值。 我已閱讀關於threadpool和任務(在.net 4.0中),但我不知道如何實現相同。請用一些示例代碼指導我。
請注意,你的代碼是容易受到SQL注入,看看它 – Termiux