với máy chủ TIdHTTPServer độc lập, ngay cả OnCommandGet, có khả năng chuyển sang AResponseInfo.ContentStream một luồng với dữ liệu. . khi tôi có thể phát hành luồng đó? giả sử máy chủ có thể nhận được nhiều yêu cầu và mọi yêu cầu có thể được xử lý tại thời điểm đã cho và một luồng có thể hoàn thành tùy ý cho một yêu cầu khác.sau khi một luồng được truyền tới CommandGet, khi nào nó có thể được giải phóng?
nơi luồng có thể được giải phóng?
mã ví dụ:
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;
Khi dòng có thể được giải thoát? về những gì thậm chí, và làm thế nào để chúng ta biết IdHttpServer, đã hoàn thành việc chuyển giao của nó?