IAsyncEnumerable taking to much proccess memory [Answered]
Is there a way to free up memory after each iteration?
public async Task TransferFileAsync(string fileId, IAsyncEnumerable<byte[]> chunks)
{
var file = await _fileService.GetFileAsync(Context.ConnectionId, fileId);
if (file == null)
return;
if (file.Acceptance != TransferAcceptance.Accepted)
return;
await foreach (var chunk in chunks)
{
await Clients.Client(file.RecipientId).SendAsync("OnReceiveFile", new FileChunk()
{
FileId = file.Id,
Chunk = chunk
});
}
await _fileService.RemoveFileAsync(Context.ConnectionId, fileId);
} public async Task TransferFileAsync(string fileId, IAsyncEnumerable<byte[]> chunks)
{
var file = await _fileService.GetFileAsync(Context.ConnectionId, fileId);
if (file == null)
return;
if (file.Acceptance != TransferAcceptance.Accepted)
return;
await foreach (var chunk in chunks)
{
await Clients.Client(file.RecipientId).SendAsync("OnReceiveFile", new FileChunk()
{
FileId = file.Id,
Chunk = chunk
});
}
await _fileService.RemoveFileAsync(Context.ConnectionId, fileId);
}