我正在与串行设备通信,我希望能够读取流中的数据。传入数据的长度将不固定。但是,上述功能仅在接收到“ count”个字节时才返回一个值。根据文档,当接收到任意数量的字节时,它应该返回,并将“计数”字节数加载到中间缓冲区中以进行读取。
IInputStream stream = EventHandlerForDevice.Current.Device.InputStream;
var buffer = new Byte[100];
IBuffer bufferResult = await stream.ReadAsync(
buffer.AsBuffer(),
(uint)buffer.Length,
InputStreamOptions.Partial).AsTask().ConfigureAwait(false);
buffer = bufferResult.ToArray();
if (bufferResult.Length == 0)
{
LoggingServices.Instance.WriteLine<App>("something ", LogLevel.Info);
}
或
DataReaderObject.InputStreamOptions = InputStreamOptions.Partial;
bytesRead = await DataReaderObject.LoadAsync(ReadBufferLength);
这两个仅在接收到缓冲区长度字节数时返回。否则,只有当我传递1并处理每个字节的输入时,它才起作用。