Я новичок в многопоточности, и выяснение того, что является и не является критическим разделом, все еще является навыком, над которым я работаю.В этом примере у меня есть код ADO.NET в многопоточной среде, и я не уверен, нужно ли мне что-то здесь блокировать или нет.Например, "command.Parameters.AddRange (parms);"линия.Нужно ли беспокоиться о потоке, добавляющем параметры в другие потоки Коллекция параметров?
internal async Task ExecuteNonQueryAsync(string spName, SqlParameter[] parms, TransactionScopeOption tranScopeOpt = TransactionScopeOption.Required)
{
using (TransactionScope scope = new TransactionScope(tranScopeOpt, TransactionScopeAsyncFlowOption.Enabled))
{
try
{
using (var connection = new SqlConnection(_connString))
{
await connection.OpenAsync();
using (var command = new SqlCommand(spName, connection))
{
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddRange(parms);
await command.ExecuteNonQueryAsync();
scope.Complete();
}
}
}
catch (Exception ex)
{
...
}
}
}