我已经编写了以下方法来从一般的流中读取数据。在我的计算机上,它将是一个 MemoryStream,而在现实世界中,它将是一个网络流。
public async void ReadAsync()
{
byte[] data = new byte[1024];
int numBytesRead = await _stream.ReadAsync(data, 0, 1024);
// Process data ...
// Read again.
ReadAsync();
}
这里的想法是数据在回调中得到处理,然后回调应该产生一个新的读取器线程(并杀死旧的)。然而,这不会发生。我得到一个 StackOverflowException。
我究竟做错了什么?