OleDbDataReader и InvalidCastException
От: powerman1982  
Дата: 19.09.08 10:04
Оценка:
Добрый день. Кто что думает по следующему вопросу? Объект 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. Там ведь тоже нельзя вызывать методы из другого потока.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.