编辑:

根据建议,我已经开始执行以下操作:

 private string Reading (string filePath)
    {
        byte[] buffer = new byte[100000];

        FileStream strm = new FileStream(filePath, FileMode.Open, FileAccess.Read,
        FileShare.Read, 1024, FileOptions.Asynchronous);

        // Make the asynchronous call
        IAsyncResult result = strm.BeginRead(buffer, 0, buffer.Length, new
        AsyncCallback(CompleteRead), strm);

    }

       private void CompleteRead(IAsyncResult result)
    {
        FileStream strm = (FileStream)result.AsyncState;

        strm.Close();
    }


我该如何实际返回已读取的数据?

最佳答案

public static byte[] myarray;

static void Main(string[] args)
{

    FileStream strm = new FileStream(@"some.txt", FileMode.Open, FileAccess.Read,
        FileShare.Read, 1024, FileOptions.Asynchronous);

    myarray = new byte[strm.Length];
    IAsyncResult result = strm.BeginRead(myarray, 0, myarray.Length, new
    AsyncCallback(CompleteRead),strm );
    Console.ReadKey();
}

    private static void CompleteRead(IAsyncResult result)
    {
          FileStream strm = (FileStream)result.AsyncState;
          int size = strm.EndRead(result);

          strm.Close();
          //this is an example how to read data.
          Console.WriteLine(BitConverter.ToString(myarray, 0, size));
    }


它不应读取“ Random”,它以相同的顺序读取,但以防万一,请尝试执行以下操作:

Console.WriteLine(Encoding.ASCII.GetString(myarray));

09-25 21:40