Закрытие ODBCDataReader перед завершением чтения, ODBCData Reader закрывается долго - PullRequest
0 голосов
/ 30 января 2012

Я запускаю код, который вызывает запрос SQL с использованием ODBCDataReader.Результат запроса должен быть вложен в электронное письмо и отправлен пользователю по почте.Как вы знаете, почтовые серверы ограничивают объем передаваемых данных.Так что я сделал, чтобы установить ограничение для прикрепления к определенному размеру.Это приводит к тому, что ODBCDataReader завершает работу раньше, чем достигнет конца запроса

while (_ODBCConn.Data.Read() && AttachmentFileSize < MaxAttachmentSize)
                {
                     //Write to file attachment
                     //Obtain AttahmentFileSize
                }

К сожалению, когда я запускаю следующий набор кода, чтобы закрыть читатель, это занимает много времени

if (_reader != null)
        {
            _reader.Close();
        }

Кто-нибудь знает, как заставить читателя закрываться быстрее?

1 Ответ

1 голос
/ 30 января 2012

Я не уклоняюсь от вашего вопроса, но я сомневаюсь, что вы можете что-то сделать с количеством времени, которое требуется, чтобы читатель закрылся. Однако, если команда close удерживает некоторый чувствительный ко времени код, который должен быть запущен позже, вы можете вызвать эту строку в другом потоке. Прежде чем использовать его снова, я бы обязательно проверил состояние читателя, поскольку поток может занять некоторое время.

...