Вот мой фрагмент
Public async Task DoSomething(List<T> dataList)
{
foreach (T claim in dataList)
{
var claimLineTask = AssembleClaimLines(claim);
tasks.Add(claimLineTask);
}
await Task.WhenAll(tasks);
return dataList;
}
protected async Task AssembleClaimLines(T claim)
{
connector.ConfigSettingsSection = "Claims.Lines";
connector.QueryParameters = new Dictionary<string, string>()
{
{“id”, claim.ID.ToString()},
};
claim.data = await connector.GetData()
return;
}
У меня есть условие гонки при вызове AssembleClaimLines()
. Значения connector.QueryParameters
переопределяются одним из потоков.В конечном итоге у меня много повторяющихся звонков.
Одно простое решение - я могу передать connector
в качестве параметра для AssembleClaimLines
.Но я не могу этого сделать, поскольку connector
передается от внедрения зависимости.Как еще можно решить условие гонки и при этом полностью использовать многопоточность?