c# - FIle.ReadAll***Async/WriteAll***Async/AppendAll***Async 方法在哪里?

标签 c# .net file async-await task-parallel-library

File 中有一堆相当方便的方法类,如 ReadAll***/WriteAll***/AppendAll***

我遇到过很多情况,当我需要它们的异步对应物时,但它们根本不存在。

为什么?有什么陷阱吗?
我知道,这些方法可以很容易地实现,但是有什么理由不在开箱即用的框架中实现它们吗?

最佳答案

"... I need their asynchronous counterparts, but they just don't exist. Why?"

与 async-await 一起添加到 .Net 框架的所有 XXXAsync 方法(不包括以异步方式开发的新库)只是 BeginXXX 的包装器>/EndXXX.

他们没有添加任何新的异步操作,只是将旧的异步操作转换为新的基于任务的操作。例如这是 UdpClient.SendAsync :

public Task<int> SendAsync(byte[] datagram, int bytes)
{
    return Task<int>.Factory.FromAsync(BeginSend, EndSend, datagram, bytes, null);
}

由于没有 File.BeginReadAllFile.EndReadAll,所以没有 File.ReadAllAsync 是可以理解的。

Are there any pitfalls?

实现这些方法的唯一缺陷是以真正的异步方式执行,而不是伪装异步。

关于c# - FIle.ReadAll***Async/WriteAll***Async/AppendAll***Async 方法在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32837405/

相关文章:

c# - 如何等待 Parallel Linq 操作完成

c# - Xamarin Studio 上的 MonoGame - Xna 存在问题?

.Net 核心优势 - 并行执行需要清晰

php - 持续更新php页面

c# - 如何在 C# 中将 DataTable 转换为锯齿状数组?

c# - 通过 COM 从 Ruby 调用 C# .dll

c# - 将字符串列表放入 Bson 数组

c# - winform应用程序的图标绘制工具有哪些?

python - 写入文件时出错

c - 在 C 中将结构写入文件时的额外零