Olá durante o curso esclareci a necessidade de utilizar o async/await, porém fiquei com dúvidas como aplicar em outros casos, por exemplo no:
Caso 1, um procedimento que lê milhares de imagens do disco, a partir de um médoto async que recebe uma List com nomes da imagem e devolve uma List com as imangens em Base64, ir chamando esse código a cada iria resolver
public static async Task<byte[]> ReadImageBytesAsync(string filepath)
{
byte[] imageBytes;
using (FileStream sourceStream = new FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.None, 4096, useAsync: true))
{
imageBytes = new byte[sourceStream.Length];
await sourceStream.ReadAsync(imageBytes, 0, (int)sourceStream.Length);
}
return imageBytes;
}
public static async Task<string> Base64ImageFromPathAsync(string pathImagem)
{
var imageBytes = await ReadImageBytesAsync(pathImagem);
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
Caso 2, quando utilizo o EntityFramework e irá retornar uma coleção de registros, o EF apresenta métodos como AllAsync, ToAsyncEnumerable. Como devo proceder para poder realmente aproveitar os recursos de processadores da máquina?