Должен ли я закрыть поток в службе WCF REST?

1

У меня есть служба WCF Rest Service с методом на стороне сервера и переменной потока, которая передается ему.

Мой вопрос: должен ли я закрывать поток после сохранения файла локально?

void ImportFile(Stream stream)
{
    // Reading stream...
    stream.Close(); // ??? is it really needed ???
}
Теги:
azure
rest
wcf
stream

2 ответа

2
Лучший ответ

Это зависит от источника потока. Если это поток, который вы создали, то ответ Coder1409 правильный - вы должны поместить инструкцию создания потока в команду using. Если, однако, поскольку вы конкретно указываете, что находитесь в службе отдыха, поток является потоком запросов HTTP, это поток только для чтения только для чтения, и его время жизни будет определяться контекстом HTTP, из которого вы его получили.

  • 0
    Поток идет от остальных клиентов. Я не уверен, если его поток запросов.
  • 1
    Если внешняя сущность (вне вашего непосредственного кода) передает вам поток, и вы не предоставляете в своем методе флаг для прохожих, указывающий, хотят ли они закрыть поток по возвращении, вероятно, будет хорошей идеей не закрывать поток. Позвольте проходящему объекту управлять временем жизни потока, который он создал и передал вам. Произвольное закрытие потока, который не был создан вашим кодом, является плохой формой, вы не знаете, нужен ли вызывающему потоку, чтобы поток оставался открытым для будущих вызовов.
1

вы должны использовать инструкцию using, которая будет утилизировать ваш поток, когда вы закончите с ним, как

используя (поток) {

//код здесь

}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню