Melhor maneira de ler um arquivo grande em uma matriz de bytes em c #?

Eu tenho um servidor web que irá ler arquivos binários grandes (vários megabytes) em matrizes de bytes. O servidor pode estar lendo vários arquivos ao mesmo tempo (solicitações de páginas diferentes), então estou procurando a maneira mais otimizada de fazer isso sem sobrecarregar muito o CPU. O código abaixo é bom o suficiente?

public byte[] FileToByteArray(string fileName)
{
    byte[] buff = null;
    FileStream fs = new FileStream(fileName, 
                                   FileMode.Open, 
                                   FileAccess.Read);
    BinaryReader br = new BinaryReader(fs);
    long numBytes = new FileInfo(fileName).Length;
    buff = br.ReadBytes((int) numBytes);
    return buff;
}

questionAnswers(9)

yourAnswerToTheQuestion