javascript - 是否有与 Node.js 一起使用的stream.on ('data' )类似的.NET Core?

标签 javascript .net node.js stream .net-core

Stream 在 Node.js 中非常常见,而且非常容易处理。创建一个流非常简单,一旦我们有了一个流,我们就可以执行以下操作:

stream.on('data', (data) => {
    // processing
});

处理来自流的数据。

是否有任何 .NET Core 类似的东西?我的意思是,我确实知道 .NET 非常不同,因为没有事件循环等等。

但我想知道,尽管与 Node.js 有本质上的不同,我们是否可以完成相同类型的行为。

最佳答案

最大的区别在于异步模型:C# 使用 async-await 进行异步,而不是回调。 API 中存在差异:您可以使用 Stream,它为您提供 byte[] 形式的数据(您必须自己分配)。或者您可以使用 StreamReader,它为您提供 char[] 形式的数据或 string 形式的行。

所以,您的选择是:

Stream.ReadAsync:

Stream stream = …;
byte[] buffer = new byte[1024];
int read;
while ((read = await stream.ReadAsync(buffer, 0, buffer.Length) != 0)
{
    // processing
}

StreamReader.ReadAsync:

StreamReader stream = …;
char[] buffer = new char[1024];
int read;
while ((read = await stream.ReadAsync(buffer, 0, buffer.Length) != 0)
{    
    // processing
}

StreamReader.ReadLineAsync:

StreamReader stream = …;
string line;

while ((line = await stream.ReadLineAsync()) != null)
{
    // processing
}

关于javascript - 是否有与 Node.js 一起使用的stream.on ('data' )类似的.NET Core?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39003010/

相关文章:

.net - 使用反射获取嵌套属性值

c# - 如何限制某些程序集的反射?

python - 无法使用 SOAPpy 调用 Web 服务方法

node.js - Maven 前端构建在生成源阶段运行两次

node.js - 通过工作进程向客户端返回响应的 node.js 模式是什么

javascript - jquery datepicker 不工作,日期框不出现

javascript - Angular - 将服务的函数设置为具有特定参数的函数调用

javascript - 可以在 TypeScript 中扩展 JQueryEventObject

javascript - 如何让我的 HTML 文件访问 Amazon S3 存储桶中的 CSS 和 JavaScript 文件?

javascript - 100+列10行渲染性能在ui-grid中是最差的