8
with indy TIdHTTPServer、OnCommandGetの場合でも、データを含むストリームをAResponseInfo.ContentStreamに渡す可能性があります。 これは問題ありません。 そのストリームをいつリリースできますか? サーバが複数のリクエストを受け取ることができ、任意のリクエストが所定の時間に処理され、1つのストリームが他のリクエストに対して任意に終了することができると仮定します。ストリームがCommandGetに渡された後、いつ解放できますか?
ストリームは解放されますか?
コード例:
var
StreamsToFree : TList;
//assume StreamsToFree := TList.create; properly
procedure TObject.IdHttpServerCommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
stream : TFileStream;
begin
stream := TFileSTream.create('file.name');
AResponseInfo.ContentStream := stream;
AResponseInfo.ResponseNo := 200;
StreamsToFree.Add(generateReceiptXML);
end;
ストリームを解放することができますか? IdHttpServerが何を知っているのですか?