У меня есть один метод, который анализирует некоторые данные, принадлежащие определенному пользователю, и сохраняет их в базе данных.
delegate void parseUserDataDelegate(string pathToFile);
Я создал для него делегат и рендеринг с BeginInvoke для параллельной обработки.
parseUserDataDelegate deleg = new parseUserData(this.parseUserData);
IAsyncResult result = deleg.BeginInvoke(path, null, null);
deleg.EndInvoke(result);
Проблема состоит в том, что есть две таблицы - одна для данных, где внешний ключ является идентификатором пользователя, и другая таблица для пользователя.Если при анализе нет соответствующего пользователя, метод добавляет новую запись в пользовательскую таблицу и использует ее идентификатор.В одной таблице данных содержится около 100 записей для одного пользователя.Проблема заключается в том, что при обработке всех данных первого пользователя возникает ошибка, поскольку два потока пытаются создать одну и ту же запись для второго пользователя.Как заблокировать доступ к пользовательской таблице для разных потоков?