просто oracle получает запрос, думает и потом уже начинает выдавать данные.
Вот пока он думает - ридер "висит" в ожидании...
Тестировал, если запрос на отмену вызовется раньше ридера, то все ок. Причем в случае отмены в хранимой процедуре ловится исключение, что операция отменена пользователем, но если уже вызван метод read, то похоже команда никакую отмену уже не вызывает.
Кстати почему бы не загнать кусок добычи данных в фоновый поток и либо грохать его по отмене, либо просто забывать...?
Вариант, но прерывать поток же не рекомендуется(Thread.Abort)? Что удивляет, что закрытие ридера никак на него не влияет(никаких исключений не бросает), т.е. его можно закрыть, но отвиснет он только после выполнения процедуры.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.