Ý tưởng đầu tiên là có các luồng riêng biệt và các kết nối riêng biệt nhưng tôi nghĩ bạn có thể quản lý nó bằng nhiều kết nối trong một luồng duy nhất bằng cách sử dụng lệnh gọi lại không đồng bộ:
string[] tables = new string[] { "TableA", "TableB", "TableC" ... };
var runningCommands = new List<SqlCommand>();
foreach(var table in tables)
{
var conn = new SqlConnection(...);
conn.Open();
var cmd = new SqlCommand("DELETE FROM " + table + " WHERE id = @id");
cmd.Parameters.Add(new SqlParameter("@id", id);
cmd.BeginExecuteNonQuery();
runningCommands.Add(cmd);
}
// now wait for all of them to finish executing
foreach(var cmd in runningCommands)
{
cmd.EndExecuteNonQuery();
cmd.Connection.Close();
}