объектов подключения к базе данных не поточно-и не предназначены для использования в несколько потоков одновременно.
Вы не должны распараллеливать код через одно соединение, вместо этого вам потребуется отдельное соединение для каждого отдельного потока, и поэтому вы не можете использовать Parallel.ForEach
.
Вы можете увидеть это документировано на MSDN:
OleDbConnection Class, раздел Thread Safety (в нижней части):
Любые открытые (Shared в Visual Basic) члены этого типа являются потокобезопасными. Любые члены экземпляра не гарантируют безопасность потоков.
Это означает, что статические члены этого типа являются поточно-, экземпляр-члены не являются, а это означает, что данный тип как объект не будет потокобезопасным.
Это может показаться ошибкой в OleDb Provider. Какой это поставщик? –
Кроме того, вы пробовали это без параллелизма? –
Может быть, эта ссылка поможет вам http://michaelsync.net/2009/10/31/net-runtime-version-2-0-50727-3603-fatal-execution-engine-error-7a036050-80131506-mscoree-dll – coder