我希望能够从函数中返回MemoryStream,但我认为在返回stream时,它也会自动关闭。
using (var httpStream = await httpClient.GetStreamAsync(link))
{
using (var stream = new MemoryStream())
{
await httpStream.CopyToAsync(stream);
return stream;
}
}是否有任何方法可以override这个,这样我就可以返回stream以便我可以在其他地方使用它。
下面是我尝试在另一种方法中使用它的方法
using (var fielStream = new FileStream(path, FileMode.Create))
{
Stream stream = await GetStreamAsync(videoid, type, quality);
await stream.CopyToAsync(fileStream);
}发布于 2021-12-09 21:42:52
下拉内部using:调用者(调用创建的人)应该Dispose流:
using (var httpStream = await httpClient.GetStreamAsync(link)) {
var stream = new MemoryStream();
try {
await httpStream.CopyToAsync(stream);
return stream;
}
catch {
stream.Dispose();
throw;
}
}应该将using放在下面这样的调用方:
// We create MemoryStream with the code above (GetStreamAsync)
/ and then Dispose the stream
using (var stream = await GetStreamAsync(...)) {
...
}https://stackoverflow.com/questions/70296980
复制相似问题