Добрый день. Кто что думает по следующему вопросу? Объект OleDbDataReader создается в одном потоке. Метод GetInt32() вызывается в другом. Вываливается в Invalid CastException. Точнее
Unable to cast COM object of type 'System.__ComObject' to interface type 'IRowset'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{0C733A7C-2A1C-11CE-ADE5-00AA0044773D}' failed due to the following error: Интерфейс не поддерживается (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
Проблема не в доступе к разделяемым ресурсам. То что этот метод не потокобезопасен понятно. Тот поток в котором создался OleDbDataReader засыпает. Есть мысль что Здесь то же самое как и с Forms. Там ведь тоже нельзя вызывать методы из другого потока.