C#C
C#4y ago
111 replies
v0fbu1vm

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);
        }
Was this page helpful?