我怎麼能採取下面的代碼,並使myValues的每次迭代異步(關於執行命令,而不是循環本身)?異步運行參數化查詢/命令?
using (var connection = new SqlConnection(CONNECTION_STRING))
using (var command = new SqlCommand(query, connection))
{
connection.Open();
command.Parameters.Add("@myParameter", SqlDbType.VarChar)
foreach(string myValue in myValues)
{
command.Parameters["@myParameter"].Value = myValue;
using (var dr = command.ExecuteReader(CommandBehavior.SingleResult))
{
while (dr.Read())
{
//do something
}
}
}
}
https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executereaderasync(v=vs.110).aspx – David
您可能希望把代碼放到一個BackgroundWorker因此您可以在發生更新時執行其他任務。 – jdweng
@jdweng如果使用固有的異步IO操作完成工作,沒有理由使用BGW。這裏沒有CPU綁定的工作。 – Servy