public static void Read(string path, Action<Exception, long, byte[]> callback) { var fs = System.IO.File.OpenRead(path); var buffer = new byte[DefaultBufferSize]; var state = new ReadAsyncCallbackState(fs, buffer, callback); fs.BeginRead(buffer, 0, buffer.Length, ReadAsyncCallback, state); }