首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.Net System.IO.Stream异步/非阻塞

.Net System.IO.Stream异步/非阻塞
EN

Stack Overflow用户
提问于 2015-05-22 01:53:14
回答 1查看 706关注 0票数 1

我希望包装外部资源并将其转换为应用程序中的流(然后由PushStreamContent在webapi控制器中使用)。

C#中的流文档并没有真正推断我如何创建一个使用异步方法的流。

试图继承System.IO.Stream给出了一个非常同步的“读”方法。理想情况下,我希望我的阅读是一项“不可接受”的任务。甚至readAsync方法看起来都希望读取是同步的,它们只需要选择块。

我非常想在C中选择一些东西,在这里我可以设置IO准备阅读,然后readAsync内容将继续阅读。可能会有一些数据被外部挂起,所以我希望read调用可以推迟到其他任务,并在准备就绪时继续阅读。

代码语言:javascript
复制
public override int Read(byte[] buffer, int offset, int count)
{
    throw new NotImplementedException();
}

我是否应该显式地重写ReadAsync来完成这一任务?有关于如何在.NET中实现自己的流的文档吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-22 02:19:09

可读Stream的基础是同步Read操作。流类围绕同步ReadAsync实现Read,因此不需要重写ReadAsync

如果默认实现不够(例如,您希望将一些智能注入到异步代码中,或者根据您正在流的资源的内部实现来改进性能),那么您可以重写BeginReadEndRead方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30387170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档