gpt4 book ai didi

c# - 如何处置在任务中使用的 MemoryStream?

转载 作者:太空狗 更新时间:2023-10-29 21:26:47 26 4
gpt4 key购买 nike

我有以下方法:

public void Write() {
var tasks = new List<Task>();
while(...) {
var memoryStream = new MemoryStream(...);
var task = _pageBlob.WritePagesAsync(memoryStream, ... );
tasks.Add(task);
}
Task.WaitAll(tasks.ToArray());
}

如何正确处理Task中的memoryStream?我需要在任务完成后处理 memoryStream 对象。

最佳答案

你有两个选择:

1-将所有流程封装在一个task中:

while(...) {

var task = Task.Run(async () => {

var memoryStream = new MemoryStream(...);
var res = await _pageBlob.WritePagesAsync(memoryStream, ... );
memoryStream.Dispose();

});

tasks.Add(task);
}

2-使用延续:

 while(...) {
var memoryStream = new MemoryStream(...);
var task = _pageBlob.WritePagesAsync(memoryStream, ... )
.ContinueWith((PrevTask) => memoryStream.Dispose());

tasks.Add(task);
}

关于c# - 如何处置在任务中使用的 MemoryStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36917408/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com