Я нашел ваш вопрос, ища ответы о том же сообщении об ошибке, которое у вас было.
Моя проблема с параллелизмом, по-видимому, произошла из-за изменения, которое вызвало повторную визуализацию визуального дерева в том же самом сообщении. время (или из-за того, что) я пытался вызвать DbContext.SaveChangesAsyn c ().
Я решил эту проблему путем переопределения метода ShouldRender () моего компонента, например:
protected override bool ShouldRender()
{
if (_updatingDb)
{
return false;
}
else
{
return base.ShouldRender();
}
}
Затем я завернул свой вызов SaveChangesAsyn c () в код, который соответствующим образом установил частное поле bool _updatingDb:
try
{
_updatingDb = true;
await DbContext.SaveChangesAsync();
}
finally
{
_updatingDb = false;
StateHasChanged();
}
Вызов StateHasChanged () может или не может быть необходимым, но я ' включил это на всякий случай.
Это исправило мою проблему, которая была связана с выборочным отображением привязанного тега ввода или просто текста в зависимости от того, редактировалось ли поле данных. Другие читатели могут обнаружить, что их проблема параллелизма также связана с чем-то, что вызывает повторную визуализацию. Если это так, эта техника может быть полезна.